Python爬虫学习(八)爬取知乎关注用户
2017-09-08 本文已影响419人
弃用中
当我们想查看自己的知乎关注列表时,首先面临的情况就是,我们得登录。
登录之后,我们就可以看到自己的关注列表,
使用Chrome浏览器查看Network选项卡,我们发现,关注列表的信息来自一个Ajax请求,
那么,如何在代码中实现关注用户爬取呢?先做一个小测试,
遗憾的是,运行之后,毛线都没有,还报了一波错误:
未授权!
Web服务器认为,客户端(例如您的浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 1 )尚未被提供, 或 2 )已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。 需客户端提供的验证请求在 HTTP 协议中被定义为 WWW – 验证标头字段 (WWW-Authenticate header field) 。
一般来说该错误消息表明您首先需要登录(输入有效的用户名和密码)。 如果你刚刚输入这些信息,立刻就看到一个 401 错误,就意味着,无论出于何种原因您的用户名和密码其中之一或两者都无效(输入有误,用户名暂时停用,等) 。
这个时候,怎么办呢?
在请求头加入Cookie就好,至于Cookie是什么,大家可以看看HTTP cookies详解。
同样是在Chrome中,我们可以看到请求时的Cookie:
编写爬虫程序时,将其加入到请求头中即可:
运行结果如下:
成功得获取到了关注用户,如果想获取更多的关注,将代码的请求参数调整一下即可。
当然,还有很多其他使用Cookie的方法,详情请看:Urllib库及cookie的使用
以上。