微博数据爬取练习
由于最近工作原因,接触到了微博的数据分析。 我认为这很有趣。 我想先练习抓取微博的数据。
目标是将微博的内容和作者存入数据库。 由于数据量不是很大,我们暂时使用MySQL。 如果以后需要存储大量的数据,我们会考虑使用Hive或者HBASE。
然后代码就用上了,因为写起来比较方便。 以下是循序渐进的教学。
1.搭建微博开发平台
检索微博数据非常简单。 首先登录微博开放平台,注册一个应用,获取and,然后修改授权回调页面和取消授权回调页面为
基本上微博的前期工作就完成了。
2.MySQL创建数据库
打开cdm,输入mysql -u root -p微博抓取,输入mysql,输入weibo; 新建一个数据库weibo,然后输入use weibo进入weibo数据库。
然后输入以下代码创建一个新表。 表中只有两列,一列存储名称,一列存储内容。 如果要设置id,可以,但是我不需要,然后我特意把长度设置大一点,避免出现打字问题
其实不应该那么多
3.查看界面
首先进入微博开放平台看它的API文档微博抓取,主要是看它返回的格式
%E6%96%87%E6%A1%A3#.E6.95.B0.E6.8D.AEAPI
找到我想要的数据并记录下来
4.写代码
代码其实很简单。 首先,包括一些必要的包。 是我在网上找的一个微博工具包,可以上传下载。
然后使用模块向微博接口发送授权请求,然后打开一个授权页面(关于授权原理的接口文档有写),复制url后面的code="xxxxx"
输入网页后面给的code,获取token和in,然后用这两个向接口请求数据,到这里就差不多大功告成了。
先把请求的数据打印出来,返回的数据格式要和接口文档中的一致。
4.存储数据
由于我们只需要作者和他的内容,所以我们需要先找出需要的数据。 从接口文件中,我们可以找出我要的数据所在的位置,打印出来查看。
好像没问题,然后写到mysql库中
然后查看MySQL中的数据,可以看到微博数据已经成功写入数据库(后来发现我把作者和内容颠倒了,但是不影响这个练习)
接下来的想法是抓取更多维度的数据,然后用NLTK之类的对文本进行分析,做简单的报表。 但是,这个工作量应该是相当大的。 我不知道我是否有时间去做。