python爬取图片_用Python爬取知乎妹子图片

用Python爬取知乎妹子图片

这次呢,笔者给大家分享的是爬取知乎的妹子图,嗯,你懂的。

9af7b9306a07180d35926c2b90d8b5e6.png


话不多说,直接看战果。

76cf4686814e10fd3cfafee417d281ee.png

7ff629a75da87307319f94b459070de9.png


嗯,还是很不错的,值得我们去爬取。下面说一下整个过程的实现。页面分析
本次爬取的是知乎话题下所有回答的所有图片,如下

99145054f16922e1c580a59c56d3b99f.png


我们可以看到这个话题有811个回答,所以呢,爬取的图片也是很多的,共爬取了1996张图片。
我们知道我们要爬取的是图片,然后图片呢是嵌套在内容当中的,所以我们只要能找到怎么获取到内容,就能将图片爬取下来。
我们按f12进行开发者模式,在右边的name中找到了answers为开头的名。

7223f6e9ab396850340b446e551f4547.png


通过英文名字,我们猜测这个可能就是我们要找的内容,打开右边的Request URL,看到了一大堆数据,包括id,用户名,当然,也包含我们要找的内容。如果感觉看不清这些数据,可以放到 在线json校验工具进行解析。可以看到,里面有个content属性,里面就是用户回答的内容,图片的链接就包括在里面。

c6835e28802a01657aa028e4f3c27a2a.png


现在呢,我们知道要怎么获取数据了,但还有一个问题,就是怎么爬取全部用户的回答内容,因为刚才的链接只能取到前3个用户的回答。通过链接我们发现里面有两个参数可以改变,分别是offset和limit,通过英文单词可以知道前者是指偏移量,即查询的数据从哪一个回答开始,后者是最多展示的回答数量。所以呢,会点英语还是挺重要的。
然后笔者通过试验,发现了limit最大是20,所以我们只要改变offset就行,limit固定为20。代码爬取
首先就是要获得所有页面数据的url

82c5a377b7b62da2d7d15e8951988cc2.png


之后我们通过json解析和正则表达式匹配获得图片的url

60454d7bfe6b39a84a5903f8fed25bb3.png


最后就是将二进制数据写进图片中,即下载图片

ce8716b98760b603446cbc61e0e9dcdb.png


之后运行,等待了漫长的时间,终于下载完了。如图,用了1467秒,20几分钟。

009f57381b81b7913a4a67d3e940614c.png


这个过程感觉太久了,所以改了一下程序,用多线程下载。

952793b67ef74f79317647b9f413aab0.png


加上上述代码就行。

0832d490dc223b75435adee4083a6372.png


如上,快了好几倍。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值