最近接到一个任务主要是想抓取微博相关微博数据。比如说抓取一个特定微博中微博数、关注数、被关注的粉丝数、个人相关信息比如居住地、学校等公开的信息,以及被关注数的粉丝、微博数、关注数及相关信息。以便收集到信息以后用来做数据挖掘。
1.相关微博开发平台提供的api
2.使用网络爬虫
3.结合爬虫及微博开放api方法进行抓取。
对于第一种方法,以新浪微博为例,我在官方开放的平台中申请了一个认可的app-key,看了api的分类(有的需要高级权限才能访问),随便找了一个接口进行测试,看了相关的接口格式,运用了自己的app-key进行测试,能够获得相关数据,但具有很大的限制,诸如每次查询返回条数等限制。而且进行测试的查询次数也有限制。给我带来了很大的不变。另外,我下了新浪官方给的java sdk包,总是将请求参数传不进去,抛出异常,调试了半天时间,就先放放,等改天再进行检查。于是我就转向了网络爬虫的方法进行收集数据。
对于网络爬虫,之前没有接触过,到时java网络编程,想到可以获取到html源码,再从html标签中应用正则表达式选择相关元素诸如获取微博数、关注数、粉丝数、内容等等,回顾了下正则表达式的用法,想通过此方法获得。结果发现,自己获取HTML源码时碰到一个登陆验证的问题。。那么怎样传入我的登陆信息呢?另外,我登陆进去了,我在主页上发现没有找到,相关内容的元素信息,难道是新浪给屏蔽了,不可能吧?获取不成功后,找到一个爬虫工具Heritrix,想通过此工具进行实践。
希望接下来会能获取到微博的相关信息。