前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3.6抓取100知乎用户头像详解(四)

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

作者头像
企鹅号小编
发布2018-01-15 14:36:58
8740
发布2018-01-15 14:36:58
举报
文章被收录于专栏:大数据

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

在手机上阅读体验不佳

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

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

我们采用: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

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档