原标题:用Python挖掘Twitter数据:数据采集

作者:Marco Bonzanini 翻译:数盟

这是7部系列中的第1部分,注重挖掘Twitter数据以用于各种案例。这是第一篇文章,专注于数据采集,起到奠定基础的作用。

Twitter是一个流行的社交网络,用户可以共享称为tweets的类似SMS的短消息。用户在Twitter上分享想法、链接和图片,记者发表现场活动评论,企业改进产品和吸引客户等等。使用Twitter的不同的方式列表可能会很长,伴随着每天5亿的tweets,这里有大量的数据等着我们分析。

这是一系列使用Python专门用于Twitter数据挖掘的文章中的第一篇。在第一部分中,我们将看到通过不同的方式来进行Twitter的数据收集。一旦我们建立好了一个数据集,在接下来的环节中,我们就将会讨论一些有趣的数据应用。

注册应用

为了能够访问Twitter数据编程,我们需要创建一个与Twitter的API交互的应用程序。

第一步是注册一个你的应用程序。值得注意的是,您需要将您的浏览器转到http://apps.twitter.com,登录到Twitter(如果您尚未登录),并注册一个新的应用程序。您现在可以为您的应用程序选择一个名称和说明(例如“挖掘演示”或类似)。您将收到一个消费者密钥和消费者密码:这些都是应用程序设置,应始终保密。在您的应用程序的配置页面,你也可以要求获取一个访问令牌和访问令牌的密码。类似于消费者密钥,这些字符串也必须保密:他们提供的应用程序是代表您的帐户访问到Twitter。默认权限是只读的,这是我们在案例中需要的,但如果你决定改变您的许可,在应用中提供更改功能,你就必须再获得一个新的访问令牌。

重要提示:使用Twitter的API时有速率限制,或者你想要提供一个可下载的数据集也会有限制,请参见: >

您可以使用 Twitter提供的REST APIs与他们的服务进行交互。那里还有一群基于Python的客户,我们可以重复循环使用。尤其Tweepy是其中最有趣和最直白的一个,所以我们一起把它安装起来:

更新: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

责任编辑:

python收集数据程序_用Python挖掘Twitter数据:数据采集相关推荐

  1. python 客户端应用程序_创建python Web服务和C#客户端应用程序的最佳方法 - c#

    我正在寻找一种简单可靠的方法来创建Python Web Service并从.Net(c#)应用程序中使用它. 我发现了很多不同的库,其中一个库比另一个库好,但是似乎没有人提供关于Python Web ...

  2. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  3. python二分法查找程序_查找Python程序的输出| 套装2(基础)

    python二分法查找程序 Program 1: 程序1: a = 10 b = 3 res = a/b print "a/b: ", res res = float(a/b) p ...

  4. 用python写投票程序_大话python最终篇,web.py 开发的投票程序demo

    概述 开发语言         python Web开发框架  web.py 前端开发框架   vuejs+elementui 数据库              mysql 设计思路 首先是数据库设计 ...

  5. python收集数据程序_基于Python语言的互联网数据收集软件的设计

    软件建立所需的工具及其版本 编写环境与 IDE Python3.5.2 Windows10 PyCharm 2016.3 Sublime Text3 第三方库与版本号 Requests 2.12.1 ...

  6. python写新年快乐程序_新年快乐! python实现绚烂的烟花绽放效果

    新年快乐! python实现绚烂的烟花绽放效果 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  新年快乐! python实现绚烂的烟花绽放效果.txt ] (友情 ...

  7. python人工智能小程序_杭州python小程序

    杭州python小程序 来源:教育联展网    编辑:佚名    发布时间:2018-10-19 Java.PHP.Python哪个就业前景比较好 具体对比分析如下: Java语言特点:所有Andro ...

  8. python网络爬虫程序_使用Python写的第一个网络爬虫程序

    今天尝试使用python写一个网络爬虫代码,主要是想訪问某个站点,从中选取感兴趣的信息,并将信息依照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,因为对python不 ...

  9. python国际象棋ai程序_用Python编写一个国际象棋AI程序

    最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来. ...

最新文章

  1. java课设推荐,《Java程序设计》课程设计报告推荐.docx
  2. SQL Server 2008高可用性系列:数据库快照
  3. 接口级故障的应对方法
  4. 21.Ubuntu安装软件时出现无法获得锁 /var/lib/dpkg/lock-frontend的问题解决
  5. 办公室琐事--沟通、交流
  6. 为了更高效的开发代码,这里列出了一些webstorm的快捷键和zencoding
  7. 全球19家值得关注的物联网安全初创企业
  8. 精度优秀,速度214.7 fps !卡内基梅隆大学开源强大的3D多目标跟踪系统
  9. 前端系统学习篇之HTML
  10. PPT,要你好看(全彩)pdf
  11. Linux命令学习记录
  12. 在群辉(NAS)中安装虚拟机套件(Virtual Machine Manager)
  13. python自动化webdriver_轻松自动化---selenium-webdriver(python) (六)
  14. 北理工python程序设计学习笔记——(三)turtle八边形绘制
  15. linux xdm 启动执行文件,Linux下配置XDM登录服务器
  16. 博士申请 | 美国乔治梅森大学计算机系招收机器学习方向全奖博士生
  17. SMTP与ESMTP区别
  18. Rust 社区 RFC 导读 | 构建安全的 I/O
  19. store(商城项目)Springboot+springmvc+ajax+mybatis(15)
  20. 数通基础-TCPIP参考模型

热门文章

  1. JUnit 5和Selenium –使用Selenium内置的`PageFactory`实现页面对象模式
  2. Eclipse系列的隐藏宝藏-2019年版
  3. Selenium脚本编写技巧和窍门
  4. JUnit 5中的测试执行顺序
  5. 使用Datastax Java驱动程序与Cassandra进行交互
  6. 2018年机器学习趋势与Apache Kafka生态系统相结合
  7. java 迁移数据_从迁移到Java 7的小技巧
  8. Hamcrest Matchers教程
  9. lcs文本相似度_具有LCS方法的通用文本比较工具
  10. WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载