目标
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,一个杀死了一堆项目的项目