今天没啥事儿就在网上溜达,对,只是溜达没干别的,鼠标点着点着进了一个网站,一个妹子图网站,然后然后就一发不可收拾,一看就是一个小时。自认为自控力还可以,奈何里面的内容太精彩了,什么高qing、午马、shi身啊.........真吃鸡,自己都控制不住自己,,,,

640?wx_fmt=jpeg

当然,作为一名“技术人”,内容肯定不会一点一点地去看,要看就要看过瘾;然后一不小心就把里面的东西给全部下下来了,没看错是全部下下来了,先看个效果图:

640?wx_fmt=png

640?wx_fmt=jpeg

网站是张这个样子的:

640?wx_fmt=jpeg

废话不多说,直接开始爬取,首先我们把每个妹子的图片统称为一组照片

接着按「F12」打开开发者工具,想获取每一组中的每张图片的下载链接,我们需要知道每组照片的链接,也就是每张照片的入口所在;从源码中可以看到每组图片的链接是可以通过「li标签」下的 「href属性」所获取,所以每组图片的入口可以很轻松地获取:

640?wx_fmt=png

然后接下来需要获取一下每组照片内部每张照片下载url,任意选一组照片点进去,图片展示的样式如下,是一张为一页的展示方式;

640?wx_fmt=jpeg

依旧按按「F12」打开开发者工具,可以很方便地获取到每张照片的下载地址,可以通过「a标签」下的 「src属性」所获取:

640?wx_fmt=png

有了图片的源地址,接下来就是要开始下载图片了,可以利用利用requests去请求每张图片,然后把请求的内容二进制(contend)以.jpg保存即可;因为每张图片是一页,所以如果想获取全部图片就通过简单构造url的方式来完成。

以上已经简单地分析了一下,接下来就要进行编写代码了,首先构造一个函数获取每组照片的url,然后通过翻页的方式实现全网每组照片的url的获取:

640?wx_fmt=jpeg

在构造一个函数就是对于每组图片的爬取与下载,如下,先获取每张图片的url,通过requests进行请求,把返回来的内容以.jpg格式保存到文档中

640?wx_fmt=png

总的爬取效果如下,是不是很「吃鸡」

640?wx_fmt=png

对了,网站可能有简单的反爬措施,需要加一下「headers」,最好在访问的时候控制一下访问频率,加一行「time.sleep(2)」即可。

640?wx_fmt=png

想要本次教程「源码」跟「福利」的,关注微信公众号:zeroing,后台回复关键词:妹子 即可