写在爬取新浪微博之前

论文已经来到数据分析阶段,打算从新浪微博中爬取一些数据作为语料进行分析。不算这次,前前后后也写过几次关于新浪微博的爬虫程序,当时需求比较简单,所以也没有深入研究。这次打算爬取新浪微博中关于“贸易战”的所有博文,工作量可谓不小。知己知彼,百战不殆,在开始之前,系统了解一下微博平台还是十分必要的!

站点分析

彩版:https://weibo.cn
触屏:https://m.weibo.cn
PC:https://weibo.com

新浪微博目前共有3个站点,分别针对“非智能或半智能手机”(塞班系统)、“智能手机”(Android&IOS)、“平板或电脑”三种设备。网页结构的复杂度逐渐提高,安全性、反扒策略也是逐渐递增,爬取的难易程度也就显而易见了。对于一些简易的需求,比如爬取一个人的全部微博,爬取用户的个人信息,好友之间的关系等,这三个站点都能完成。本着简单实用的原则,能在weibo.cn站点完成的,尽量不要去weibo.com站点。但是一些复杂的需求,只能去网页结构更复杂的weibo.com上完成。总之,这三个站点各有特色,混合使用味道更佳哦~下面我们从爬虫相关的角度去了解一下这三兄弟。

总数据量

前面在学习写爬虫时,不知从哪里知道的“手机端比网页端好爬”的原则,所以一直在m.weibo.cn上面鼓捣。但是这个站点在搜索关键词后,不会告诉你大约有多少条数据。这个总数据量在写爬虫之前有了解的话,既可以让你了解目前的工作量,也可以与你与爬完的数据对比。所以,在开始执行爬虫之前,最好去weibo.cn或者weibo.com上进行一次关键词搜索,虽然二者数据有些出入,但数量将不会相差太多。

可用数据量

按照爬虫的执行流程,分析好一个页面的结构后,剩下的就是“翻页”(构造URL)的问题了。

weibo.cn

该站点只支持前100页的数据展示,每页数据量大小不一。在100页后的内容只能通过地址栏构造URL进行访问,但是返回的信息基本都是第100页的内容,有时候也不全是,反正不会给你返回所有的信息。

m.weibo.cn

该站点是以滑动形式加载数据的,所以具体会显示多少页无法从表面上看出来。以关键字“贸易战”为例,通过F12在开发者工具上查看page到360多页,后面继续递增页数的话返回空内容。但是你继续递增的话,时不时地还会有内容返回。总之呢,也是不会给你全部内容的!

weibo.com

寄希望于PC站点了!老样子,搜索完直接跳转到最后一页,但是它只提供前50页!!!难道50页后的地址不单单对page一项做变动?点击下一页后,竟然回到第1页!!!Game over!下意识的以为微博只提供最近一段时间的数据访问呢。。。直到看到这篇文章才恍然大悟—微博的高级搜索。

高级搜索

weibo.cn

高级搜索入口:https://weibo.cn/search/mblog?advanced=mblog&f=s,
以天为单位提供筛选条件,只提高前100页,对一些发帖量比较少的话题基本够用了,对一些热点事件话题还是不可取。

m.weibo.cn

此站点无高级搜索功能

weibo.com

weibo_search.png

无入口地址,以页面弹窗形式提供筛选条件,可以从此处进入。时间单位按小时计,不过,依然返回前50页。这已经是能获取的最多的情况了,虽然可能存在尚未覆盖的情况,但在大数据面前,也只能差强人意了!

总结

  • 小数据量用移动端,大数据量只能用PC端
  • 灵活运用高级搜索,提高数据精度

后续尽可能更新每一个站点的数据爬取方式!