老司机带你用python来爬取妹子图

一:Python爬虫入门-利用requsets库爬取煎蛋网妹子图

其实之前是想利用煎蛋网来联系一下scrapy的ImagesPipeline爬取煎蛋网的妹子图并下载下来保存到本地,无奈这个ImagePipeline一点都不给面子一直报404错误,而且我还不知道问题出在哪里,所以一怒之下就不用框架了,直接爬一下。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的python交流群:984632579,不管你是小白还是大牛欢迎入驻 ,讨论技术, 大家一起交流学习成长!

先来一张:

老司机带你用python来爬取妹子图_第1张图片

从下图可以看出总的页数:

老司机带你用python来爬取妹子图_第2张图片

在翻页的过程中URL中只有页数是在发生改变的,这个就比较好构建URL了,而且图片的信心在原始的请求里面就能够找到图片的链接地址,这个也比较好办:

老司机带你用python来爬取妹子图_第3张图片

于是可以开始写代码了:

老司机带你用python来爬取妹子图_第4张图片


运行结果如下:

老司机带你用python来爬取妹子图_第5张图片

总共下载下来3560几张图片:

老司机带你用python来爬取妹子图_第6张图片

二:Python使用BeautifulSoup爬取妹子图

获取首页分类标签地址,传入下一步

need-to-insert-img

获取每个分类下内容页面地址

老司机带你用python来爬取妹子图_第7张图片

获取内容页面图片地址以及标题,以页面标题作为文件夹名

老司机带你用python来爬取妹子图_第8张图片

最后保存图片就好了

代码

所需包


老司机带你用python来爬取妹子图_第9张图片

获取地址

首先说BeautifulSoup真的是爬虫利器,不过需要注意这里返回的list,还需要通过for循环读取每个地址。贴一段官方解释:

老司机带你用python来爬取妹子图_第10张图片

下面给出的代码是从首页获取每个分类的地址,其他的获取包括图片地址,内容页地址也都是大同小异,然后一直嵌套就可以了。


老司机带你用python来爬取妹子图_第11张图片

保存图片

这里需要注意的是保存图片的时候需要加上header,应该是网站更新了验证,去年爬妹子图直接保存就可以的。

文件命名的话我引入了uuid包来生成唯一guid,避免重名保存失败。


老司机带你用python来爬取妹子图_第12张图片


老司机带你用python来爬取妹子图_第13张图片

三、Python Scrapy爬取妹子图

得益于强大的scrapy框架,写个简单的爬虫还是很容易的,但是如果想写的通用和健全还是挺难的,不过对于爬图片来说,相对来说更简单,简单粗暴的做法就是爬取页面所有图片,然后在爬取页面所有a链接,再去这些a链接页面爬取所有图片,递归获取...但是这样容易陷入死循环,不过强大的scrapy框架有一个设置爬取深度的选项,设置一下即可!

直接上代码吧,scrapy框架的基本用法我就不介绍,这里只做一些关键点解析,请注意查看注释:

老司机带你用python来爬取妹子图_第14张图片


下载图片

上面的代码获取了页面所有img标签地址存在一个item对象里面,这个对象会被传递到pipelines里面进行处理,这里下载也是用到框架的组件,做了一些自定义设置:


老司机带你用python来爬取妹子图_第15张图片

图片下载存储路径在settings里面配置,还可以配置图片大小,过滤掉不符合条件的图片


老司机带你用python来爬取妹子图_第16张图片

此文有仿照其他作者的,若有侵权请联系小编更改!

你可能感兴趣的:(老司机带你用python来爬取妹子图)