威尼斯人官网
投资公司动态
NEWS
企业人力资源中高层干部核心管理能力提升
News 新闻详情

【爬虫进阶】用Scrapy实现动态网页爬取及图片下

发布人: 威尼斯人官网 来源: 威尼斯人官网下载 发布时间: 2020-06-15 07:44

  上篇文章为大家介绍了一个高清无水印而且还免费的图片网站Unsplash,并且还写了个40行的小爬虫进行图片下载,方便快捷。

  我们知道,python爬虫有一个神奇就是scrapy,抱着学习的态度,我尝试着将上次的代码成在scrapy下运行的代码,看看效果如何。以下是使用scrapy的过程:

  首先是相关的一些安装,这里就不多说了,网上教程很多,大概就是提前装上pipywin32,lxml等几个包就可以,然后就可以直接pip install scrapy。

  下面解释下各个部分,spiders文件夹用于存放爬虫程序,items用于存放一些存储对象,比如本例中的图片的url,middlewares是用来定义中间件,本例中不用用到,pipelines是用于把我们需要存储的item对象进行存储,也就是根据pic_url来下载图片存储在本地,settings是用于对scrapy工作的一些属性进行设置。

  好,解释完毕不多BB,直接来看代码,首先是爬虫的代码,图片看不清楚的话最后附有全部代码地址:

  可以看到,爬虫的代码其实跟上一次的代码区别不大,只是按照scrapy的要求进行了部分格式上的修改,parse函数是默认的回调函数,不能改名,大概流程就是创建item实例,然后根据response返回的结果,进行数据提取,获得下一页的链接和图片的链接,图片的链接保存到item中回传,下一页的链接使用scrapy.Request进行递归访问,这样就能继续爬取后面的网页。所以,总的来说还是很简单哒。

  接下来看看items.py,这个非常简单,就是把回传的item对象根据需要进行保存,这里pic_urls是一个存着一个页面所有图片url的list列表:

  有了图片的url,我们再使用pipeline.py进行图片的下载储存,这里其实就是对每个item进行相应的处理,很简单可以看出,其实就是图片的下载,而pipeline的初始化只是创建一个文件夹而已:

  到这里基本代码的部分就大功告成了,最后再编辑一下settings.py进行一些设置,有朋友纳闷,之前代码中的Headers怎么不见了,其实这个直接可以在settings中设置,还有就是启用pipeline。

  设置完成之后,我们的整个project算是全部完成了,其实也不是很麻烦嘛,只是使用上次的代码稍微一改就完成了,感觉新学scrapy的同学可以把这个当成一个练手的小项目,代码不多,但是对于了解scrapy还是很有帮助的。

  爬了一两百张图片吧,当壁纸绝对够了,欢迎点赞或关注,今后会写更多相关文章。最后附上本次的全部代码地址:,来Star呀~

  对商业智能BI、大数据分析挖掘、机器学习,python,R感兴趣同学加微信:fridaybifly,邀请你进入头条数据爱好者交流群,数据爱好者们都在这儿。

威尼斯人官网,威尼斯人官网下载,威尼斯人官网手机,威尼斯人官网直营
Copyright ©2005 - 2013 深圳 威尼斯人官网 晟大股权投资管理有限公司
威尼斯人官网,威尼斯人官网下载,威尼斯人官网手机,威尼斯人官网直营 网站地图
公司地址: 威尼斯人官网
电话:0766-27666666