网页抓取数据百度百科( 如何获取到用户的信息前往用户主页,以轮子哥为例从中)

优采云 发布时间: 2022-01-31 17:20

  网页抓取数据百度百科(

如何获取到用户的信息前往用户主页,以轮子哥为例从中)

  

  点我去Github查看源码别忘了star

  本项目的github地址:

  一.如何获取用户信息

  进入用户主页,以Brother Wheel为例

  

  从中可以看到用户的详细信息、教育经历主页、专业。行业、公司、关注量、回复数、居住地等。打开开发者工具栏查看网络,可以找到,通常html或json的数据在Html页面中。

  网址是,excited-vczh是轮哥的id,只要拿到某个人的id就可以得到详细信息。

  二.信息隐藏在哪里?

  

  通过解析这个json数据,可以找到用户信息

  

  根据URL下载Html页面,解析json获取用户信息

  三.如何获取更多用户ID

  

  每个人都有自己的关注列表,关注的人和被关注的人,抓住这些人,然后去这些人的主页抓取关注列表,这样你就找不到用户了。

  

  还有nexturl,这个链接可以保存。如果isend为真,则列表翻到最后,不需要保存url

  二.爬虫工作流程

  有两个爬虫模块。一个爬虫负责从 nexturl 队列中获取 url,下载 json 并解析它。将获取的 nexturl 插入到哈希表中。如果插入成功,则将其添加到队列中。

  另一个负责从urltoken队列中获取urltoken,下载解析页面,将用户信息存入数据库,将nexturl存入nexturl队列

  

  三.常见问题解决思路

  重复爬取问题

  解析出来的Urltoken肯定有很多重复。我很高兴获得了很多数据,但发现它们都是重复的,这是不可接受的。解决方法是将已经加入队列的urltoken放入哈希表中进行标记

  从断点爬升

  爬取数百万用户是一个相对较大的工作量。不能保证一次爬取完成。中间数据仍然需要持久化。此处选择 Redis 数据库。对于爬取任务,加入队列。如果程序中途停止,重新启动它只需要再次获取队列中的任务并继续爬升

  反爬虫问题

  爬取过于频繁,服务器返回 429. 这时候需要切换代理IP。我自己搭建了代理IP池(),购买了服务商提供的代理服务。

  例如,阿布云:

  多台机器一起爬行

  任务比较大。在实验室电脑的帮助下,一共有10台电脑,5台电脑安装了Redis,3台作为哈希表,2台作为队列,具有很好的扩展性。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线