如何获取新浪微博数据

优采云 发布时间: 2020-08-10 01:37

  无论是做与微博相关研究还是开发相关应用,可能须要获取历史的或则实时的数据。如何获取呢?除了新浪微博为开发者提供了API, 还可以借助搜索功能(详见此文)来搜集数据。

  在历史数据获取方面,与twitter相比,搜索插口比较弱,好在提供了搜索功能。

  在实时数据获取方面,sina 还是比较保守。与之相关的有三个插口用public_timeline、topics、nearby_timeline,分别拿来搜集公共的实时微博、某个话题下的实时微博、某点周围的实时微博。由此可以看出:缺乏在某地点关于某关键词的实时搜索插口。虽然有众多限制,但依然有替代方案是:利用搜索功能可以进行搜集一个小时前微博的,同时可以对关键字和地点进行限制,等等。下面从历史和实时数据两个方面来述说获取微博数据。

  数据搜集思路

  历史数据在科研方面很重要,特别是研究社交媒体方向。但是历史数据也是有要求的,首先要主题相关,然后历史也有个具体时间段。结合这两个要求的考虑,可以使用微博的中级搜索插口(详见)。

  主要思路是:抓取网页;解析网页;存储有用信息。

  值得注意的是:我们可以选择解析网页的全部信息,包括微博文和用户的部份信息,但这样获得的信息相对较少。这时可以考虑只从网页中提取出微博的id,然后通过API来返回该微博的所有信息,包括用户信息。

  实时数据的主要作用可以彰显在一些应用上,譬如实时检测公众对突发事件的反应。

  主要思路是:实时数据的一条路径为,利用微博提供的API进行搜索。这里不表,调用API即可。另一条就是,上文提及的借助搜索功能搜集一个小时前的逾实时数据。

  遇到的问题

  即每个小时对API的访问有次数限制。新浪微博API采用OAuth2进行授权,有严格的访问权限和对应的访问频次。一种走正规流程,申请a*敏*感*词*ey并获得appSecret,从而的得到相应的权限和对应的访问频次。当然还有其他方式可以避免这些限制。获取OAuth2授权的形式不止这一种(可参考)。文中提及可以通过基于用户名与密码模式,这样我们可以通过构造类似 :

  grant_type=password&client_id=s6BhdRkqt3&client_secret=47HDu8s&username=johndoe&password=A3ddj3w

  这样的URL恳求来申请Access Token。这时还是须要一个中级权限的a*敏*感*词*ey和appSecret。很幸运的是,很多APP和客户端的官方微博a*敏*感*词*ey和appSecret在网路上都可以找到(可参见)

  原文点此

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线