更新:Tweepy发布的3.4.0版本在Python3上出现了一些问题,目前被绑定在GitHub上还不能进行使用,因此在新的版本出来之前,我们一直使用3.3.0版本。
更多的更新:Tweepy发布的3.5.0版本已经可以使用,似乎解决了上述提到的在Python3上的问题。
为了授权我们的应用程序以代表我们访问Twitter,我们需要使用OAuth的界面:
现在的API变量是我们为可以在Twitter上执行的大多数操作的入口点。
例如,我们可以看到我们自己的时间表(或者我们的Twitter主页):
Tweepy提供便捷的光标接口,对不同类型的对象进行迭代。在上面的例子中我们用10来限制我们正在阅读的tweets的数量,但是当然其实我们是可以访问更多的。状态变量是Status() class的一个实例,是访问数据时一个漂亮的包装。Twitter API的JSON响应在_json属性(带有前导下划线)上是可用的,它不是纯JSON字符串,而是一个字典。
所以上面的代码可以被重新写入去处理/存储JSON:
如果我们想要一个所有用户的名单?来这里:
那么我们所有的tweets的列表呢? 也很简单:
通过这种方式,我们可以很容易地收集tweets(以及更多),并将它们存储为原始的JSON格式,可以很方便的依据我们的存储格式将其转换为不同的数据模型(很多NoSQL技术提供一些批量导入功能)。
process_or_store()功能是您的自定义实施占位符。最简单的方式就是你可以只打印出JSON,每行一个tweet:
流
如果我们要“保持连接”,并收集所有关于特定事件将会出现的tweets,流API就是我们所需要的。我们需要扩展StreamListener()来定义我们处理输入数据的方式。一个用#python hashtag收集了所有新的tweet的例子:
根据不同的搜索词,我们可以在几分钟之内收集到成千上万的tweet。世界性覆盖的现场活动尤其如此(世界杯、超级杯、奥斯卡颁奖典礼等),所以保持关注JSON文件,看看它增长的速度是多么的快,并考量你的测试可能需要多少tweet。以上脚本将把每个tweet保存在新的行中,所以你可以从Unix shell中使用wc-l python.json命令来了解到你收集了多少tweet。
你可以在下面的要点中看到Twitter的API流的一个最小工作示例:
twitter_stream_downloader.py
总结
我们已经介绍了tweepy作为通过Python访问Twitter数据的一个相当简单的工具。我们可以根据明确的“tweet”项目目标收集一些不同类型的数据。
一旦我们收集了一些数据,在分析应用方面的就可以进行展开了。在接下来的内容中,我们将讨论部分问题。
简介:Marco Bonzanini是英国伦敦的一个数据科学家。活跃于PyData社区的他喜欢从事文本分析和数据挖掘的应用工作。他是“用Python掌握社会化媒体挖掘”( 2016月7月出版)的作者。
文章来源36大数据,www.36dsj.com ,微信号dashuju36 ,36大数据是一个专注大数据创业、大数据技术与分析、大数据商业与应用的网站。分享大数据的干货教程和大数据应用案例,提供大数据分析工具和资料下载,解决大数据产业链上的创业、技术、分析、商业、应用等问题,为大数据产业链上的公司和数据行业从业人员提供支持与服务。
via:shumeng