scrapy分页抓取网页(爬取的思路如下图(站点分析)的应用思路)

优采云 发布时间: 2022-03-20 08:20

  scrapy分页抓取网页(爬取的思路如下图(站点分析)的应用思路)

  2021-05-16介绍

  知乎用户信息量很大,本文为scrapy实战:如何抓取所有知乎用户信息。

  爬取的思路如下图所示:

  

  现场分析

  本文以Brother Wheel为根节点(根节点可随意选择),打开Brother Wheel的关注列表,翻页查看关注列表:

  

  翻页是一个 AJAX 请求,每页有 20 个关注用户和一些简短的用户信息

  其中之一是 url-token,用于识别用户。在上面的截图中,用户的主页 url 是:

  其中有url-token

  项目实战

  创建项目

  思想分析

  获取用户信息

  首先,您需要获取用户的基本信息。可以通过请求类似以下的 url 来获取这些基本信息:

  {url_token}/以下

  而url_token可以在用户的​​关注列表中获取,上面url的页面是这样的

  

  此外,还有赞数、采集数、感谢权

  从上面的url获取到用户的基本信息后,下一步就是获取当前用户的关注列表:

  获取用户关注列表

  此列表具有翻页功能。经分析可知,关注列表的翻页是通过AJAX请求实现的。获取页面关注列表的url如下:

  [*].answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge[%3F(type%3Dbest_answerer)].topics&offset=0&limit=20

  提取规则:

  {url-token}/followees?include={include}&offset={offset}&limit=2{limit}

  其中包括:

  数据[*].answer_count,articles_count,gender,follower_count,is_followed,is_following,badge[?(type=best_answerer)].topics

  上面的url返回一个json,里面收录20个follower,响应数据如下图所示:

  

  对于一个follower,我们只需要得到用户的url-token*,然后我们就可以通过url-token拼接出用户的主页,还可以得到用户的基本信息和follower列表。

  获取到url-token后,我们需要判断是否有下一页,如果有则翻页,上图后半部分还有一个字段:

  

  翻到当前最后一页,字段如下图:

  

  因此,根据is_end字段可以判断是否关注了下一页的follower,利用next字段的值可以得到下一页的follower列表。

  构思安排

  所以呢?在解析用户基本信息的同时,我们可以得到用户的url_token,进而可以得到用户的follower列表。通过这种方式爬取,我们基本上可以得到所有知乎用户的所有基本信息。

  源码和一些爬取的数据:

  部分爬取的知乎用户数据

  

  源代码

  文章中已经引入了爬取知乎用户的思路。思路理清后,实现比较块。

  主要是源码有点长,这里就不一一贴了。需要源码的同学可以通过文末获取

  扫描下方二维码发送关键词“知乎”即可获取本文完整源码和详细程序评论

  

  关注公众号:互联网求职面试、java、python、爬虫、大数据等技术,海量数据分享:在公众号后台回复“csdn库下载”即可领取【csdn】和【百度库】 ] 免费下载服务;公众号后台回复“数据”:可以获得5T优质学习资料、java面试考点和java面授总结,还有几十个java和大数据项目,资料很丰富完成,你几乎可以找到你想要的一切

  分类:

  技术要点:

  相关文章:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线