【萌新写爬虫】爬知乎关注信息


这个例子是【爬虫工程师课程】中的一个实战,这里简单介绍下。

记得以前说过,爬虫有三步:获取源码、解析源码、储存数据。首先看看知乎的数据在哪里。

一、分析网页请求

以轮子哥为例,vczh,当我们禁用JS加载后,网页只有3条数据(属于lazy load),那么需要寻找数据

老规矩,打开开发者工具,找到翻页相关,数据都在这里

https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=40&limit=20

去除无用参数,是这样

offset 后面的数值就是翻页了。但是直接使用requests,会返回错误,我们把请求头拿出来看看

知乎的多了 authorization X-UDID ,进过测试 authorization 是必要参数,所以构造就很简单了。

未登录和已登录情况下的 authorization 数值不同,进过多次错误,我发现必须使用已经登录下的 authorization 。

写这个爬虫我错误了无数次~

二、翻页构造

弄清楚请求就很简单了,翻页使用format函数

三、数据储存

我们打开这些数据,发现是json,那么就很简单,可以直接保存,不需要对网页数据进行解析。

然后可以对数据可视化

咳咳,为什么我关注了这么多男性

更有趣的是,打开轮子哥的粉丝列表,两者对比

关注了:

https://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=20&limit=20

关注者:

https://www.zhihu.com/api/v4/members/excited-vczh/followers?offset=20&limit=20

有趣吧,通过这种方法,可以达到对知乎用户的爬取,前人说过很多,这里就不说了。

希望本文可以帮助你,像这种加载方式还有微博、头条。很久以前,萌新曾经提过一个问题,就是头条爬取,现在看来就很简单了。

优质内容筛选与推荐>>
1、Linux自学第一天(文件处理命令ls,cd,pwd,mkdir,mkdir,touch,cp,mv,rm,cat,more,head,tail,ln)
2、vmstat命令
3、Javascript高级编程学习笔记(22)—— 对象继承
4、table 修改
5、SQL把表中的数据复制到另一个数据库中


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号