首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python3.6抓取100知乎用户头像详解(四)

因公众号编辑器对代码不友好

在手机上阅读体验不佳

建议前往文末我的知乎文章链接

目标:抓取知乎最高点赞者的关注者的头像,并下载于本地文件夹。

我们采用:requests(获取)——json——urlretrieve(下载)

废话不多说,先上结果与代码:

前言:

:请求头(headers)

知乎对爬虫进行了限制,需要加上headers才能爬取。

请求头信息承载了关于客户端浏览器、请求页面、服务器等相关信息,用来告知服务器发起请求的客户端的具体信息。

对比知乎的请求头信息和常见的请求头信息,发现知乎请求头多了authorization和X-UDID的信息

:urlretrieve

urllib模块提供的urlretrieve()函数,可直接将远程数据下载到本地

:抓取页面,如图

现重点讲解代码四个部分:

一:请求头(headers)

每个网站的请求头都会不一样,但爬取得网站,都有例子,大家在不初期,跟着选就行

Authorization:HTTP授权的授权证书

User-Agent:代表你用哪种浏览器

X-UDID:一串验证码

二:真实的urls

异步加载中,真实的url并非https://www.zhihu.com/people/feifeimao/followers,真正的url需要我们通过抓包获取,流程如图:

所以我们得出真实url:https://www.zhihu.com/api/v4/members/feifeimao/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=20&limit=20

通过加载更多,我们发现url中start随之同步变化,变化的间隔为20,即offset=20(第一页),start=40(第二页),以此类推,所以我们得出.format(i*20),大家可以对比第三篇的翻页。

三:img_url

我们抓取的img的url需要有序的排列,即采用append函数,依次把他们放入img_url。

四:json

之前我们用得.text是需要网页返回文本的信息,而这里返回的是json文件,所以用.json

json结构很清晰,大家一层一层选取就好了

取出字典中的值,需要在方括号中指明值对应的键

总结:

1:翻页,就是寻找url中的规律,大家可以对比第二、三篇的翻页哦,都是一个套路。

2:请求头(headers)就像一把开启大门的钥匙

3:抓取的头像url尺寸很小,我们把_is去掉,就变成正常尺寸了,不过这需要用到正则re,目前我没有学习过re,后续的文章将会大家解决这个坑哦

https://pic2.zhimg.com/v2-9686febfd53ca3defe8112790b24e67e_is.jpg。

下一篇文章,将对前四篇的语法做详细讲解。

有不清楚的地方,大家可以留言,点赞,我看到了,会第一时间回复你。

知乎链接:https://www.zhihu.com/people/lei-an-15/posts

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171230G0AC8A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券