seo数据分析培训:教小白运用Scrapy-splash爬取动态页

seo数据分析培训:教小白运用Scrapy-splash爬取动态页,第1张

seo数据分析培训:教小白运用Scrapy-splash爬取动态页

教新手使用Scrapy-splash抓取动态页面和Scapy相关内容。这里没有dnf搬砖,从官网获取的中文文本文件丰富、详细、清晰。

用js上传照片推广scrapy.request网址时,响应里只有一大段js函数。要解决这个问题,可以结合Pythonscrapy-splash扩展包。教初学者使用Scrapy-splash抓取动态页面。

1。抓取动态网页。地理环境准备充分。

1.1安装scrapy-splash,智能终端马上运行。

pip安装scrapy-splash

1.2。安装垃圾飞溅服务

docker拉动报废hub/splash

1.3。启动splash服务容器并运行:

dockerrun-p8050:8050scrapinghub/splash

如有疑问,请立即参考scrapy-splashhttps://github.com/scrapy-plugins/scrapy-splash新项目的具体地址。

1.4。splash服务有什么用?尝试用浏览器浏览http://localhost:8050,可以看到以下页面:

尝试在右边的输入框输入任意一个ajax动态网页,点击renderme!片刻之后,你会看到网页页面返回splash3D的渲染结果。

2。装备你的新项目

2.1将以下设备添加到新项目设置中.py:

SPLASH_URL='http://localhost:8050'

DOWNLOADER_middleware={

'scrapy_splash。SplashCookiesMiddleware':723,

'scrapy_splash。'飞溅中间件':725,

'scrapy.downloadermiddleware.httpcompression.httpcompressionmiddleware':810,

}

SPIDER_middleware={'scrapy_splash。splashdepideargsmiddleware':100,}

dupefilter_CLASS='scrapy_splash。'SplashAwareDupeFilter'

httpcache_STORAGE='scrapy_splash。'SplashAwareFSCacheStorage'

2.2修改刺儿头。在新项目网络爬虫的文本文档中请求SplashRequest。在这种情况下,当Scrapy引擎浏览Url时,SplashRequest会立即将请求发送到sracpy-splash服务器。在sracpy-splash服务器成功浏览url之后,它将3D渲染结果返回给scrapy-engine,其编号如下:

script=""

函数main(splash,args)

assert(splash:go(args.url))

assert(splash:wait(args.wait))

return{html=splash:html(),}

结束

"""

classExampleSpider(scrapy。蜘蛛):

defstart_requests(self):

forself.start_urls中的URL:

yieldsplashrequest(URL=URL,callback=self.parse,endpoint='execute',args={'lua_source':script,'wait':0.5})

defparse(self,response):

通过

教新手使用Scrapy-splash抓取动态页面。注意,这里的请求是基于lua脚本共享的实现。当然,你也可以在需要手动浏览的网址外面打包一层,让splashservice立即浏览打包后的网址。

2.2接下来是网络爬虫的具体工作流程。例如,如果您想要抓取一个网站并将照片存储在本地,

开始的时候,觉得一定要在新的projectitems.py文件中创建新的imagepipeline,比如:

从scrapy.exceptions导入废品

从scrapy.pipelines.images导入DropItemfrom

导入图像

MyImagesPipeline(ImagesPipeline):

defget_media_requests(self,item,info):

forimage_URLinitem['image_URLs']:

#注意一定要用scrapy浏览图片的网址。这里的请求,但不是SplashRequest,

#因为scrapy架构控制模块本身无法解析SplashResponse,所以一定要再写一些方法。

产出废品。请求(图像url)

defitem_completed(自身,结果,项目,信息):

image_paths=[x['path']表示正常,x表示正常]

ifnotimage_paths:

引发DropItem("项目不包含图像")

item['图像路径']=图像路径

退货

与新项目settings.py中一样,配备了一键下载分布式系统数据库查询相关设备:

ITEM_PIPELINES={'您的新项目名称。pipelines.myimages管道':300}

IMAGES_STORE='新项目的文件名/'IMAGES_EXPIRES=90。

defparseo数据统计分析示例教程:e(self,response):

list_imgs=response.xpath('//div[@class="text"]/p/img/@src').extract() list_imgs=response.XPath('//div[@class="text"]/p/img/@src')。提取()

#xpath必须修改为指导思想url中你需要获取的内容,比如图片URL等。

iflist_imgs: iflist_imgs:

item=Imseo数据统计分析示例教程:ageItem()

item['image_urls']=list_imgs item['image_URLs']=list_imgs

产量项目

好了,进行完以上工作,你就可以运行你的网络爬虫了,尽情的爬行网站里的各种漂亮小姐姐(手拉撇嘴)!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/759992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-01
下一篇 2022-05-01

发表评论

登录后才能评论

评论列表(0条)

保存