Learning Man's Blog

关系爬虫 —— Weibo

字数统计: 386阅读时长: 1 min
2019/01/01 Share

突然想查一个人的信息,但是能下手的就一个名字,想了想可以从各个招聘网、SNS下手,首屈一指且容易获取的就是weibo了,但是也只搜出来了一条相关消息,就想着写一个爬虫来图形化显示关系网络。

目标

weibo.com

  • 对单个用户可见的粉丝、关注可看前100(Page5*20)位
  • 个人信息较多
  • dom 复杂

weibo.cn

  • 对单个用户可见的粉丝、关注可看前200(Page20*10)位
  • 个人信息较少
  • dom 相对简单
  • 用户链接比较统一

为了练手选择weibo.com,使用requests网络请求,BeautifulSoup解析页面,neo4j存储,neo4j bloom可视化

一些小问题

在实现并发的时候,requests其实不是一个好选择,一个是采用同步不好切换,另个一个是多个同时请求会很容易导致网路阻塞,虽然使用Session可以稍微提速,但是还是很慢
发现所有文本内容实际在底部的script标签中还未渲染,可以直接获取内容后本地解析,实在不行正则都可以

如果是非js渲染页面推荐pycurl,也可以使用更加友好的curl库,后者基于前者
如果是js渲染页面推荐puppeteer,对应的python库为pyppetter,一个杀死了一堆项目的项目

效果


参考资料

  1. https://cuiqingcai.com/1319.html
  2. https://cuiqingcai.com/4778.html
  3. http://codingisforeveryone.com.au/wp-content/uploads/2018/08/Bloom-getting-started.pdf
  4. chromeless在线demo
CATALOG
  1. 1. 目标
  2. 2. 一些小问题
  3. 3. 效果
  4. 4. 参考资料