一:Python爬虫入门-利用requsets库爬取煎蛋网妹子图
其实之前是想利用煎蛋网来联系一下scrapy的ImagesPipeline爬取煎蛋网的妹子图并下载下来保存到本地,无奈这个ImagePipeline一点都不给面子一直报404错误,而且我还不知道问题出在哪里,所以一怒之下就不用框架了,直接爬一下。
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的python交流群:984632579,不管你是小白还是大牛欢迎入驻 ,讨论技术, 大家一起交流学习成长!
先来一张:
从下图可以看出总的页数:
在翻页的过程中URL中只有页数是在发生改变的,这个就比较好构建URL了,而且图片的信心在原始的请求里面就能够找到图片的链接地址,这个也比较好办:
于是可以开始写代码了:
运行结果如下:
总共下载下来3560几张图片:
二:Python使用BeautifulSoup爬取妹子图
获取首页分类标签地址,传入下一步
need-to-insert-img
获取每个分类下内容页面地址
获取内容页面图片地址以及标题,以页面标题作为文件夹名
最后保存图片就好了
代码
所需包
获取地址
首先说BeautifulSoup真的是爬虫利器,不过需要注意这里返回的list,还需要通过for循环读取每个地址。贴一段官方解释:
下面给出的代码是从首页获取每个分类的地址,其他的获取包括图片地址,内容页地址也都是大同小异,然后一直嵌套就可以了。
保存图片
这里需要注意的是保存图片的时候需要加上header,应该是网站更新了验证,去年爬妹子图直接保存就可以的。
文件命名的话我引入了uuid包来生成唯一guid,避免重名保存失败。
三、Python Scrapy爬取妹子图
得益于强大的scrapy框架,写个简单的爬虫还是很容易的,但是如果想写的通用和健全还是挺难的,不过对于爬图片来说,相对来说更简单,简单粗暴的做法就是爬取页面所有图片,然后在爬取页面所有a链接,再去这些a链接页面爬取所有图片,递归获取...但是这样容易陷入死循环,不过强大的scrapy框架有一个设置爬取深度的选项,设置一下即可!
直接上代码吧,scrapy框架的基本用法我就不介绍,这里只做一些关键点解析,请注意查看注释:
下载图片
上面的代码获取了页面所有img标签地址存在一个item对象里面,这个对象会被传递到pipelines里面进行处理,这里下载也是用到框架的组件,做了一些自定义设置:
图片下载存储路径在settings里面配置,还可以配置图片大小,过滤掉不符合条件的图片
此文有仿照其他作者的,若有侵权请联系小编更改!