如何经过Python建立Twitter应用程序和API接口

  • 来源 | 愿码(ChainDesk.CN)内容编辑
  • 愿码Slogan | 链接每一个程序员的故事
  • 网站 | http://chaindesk.cn
  • 愿码愿景 | 打造全学科IT系统免费课程,助力小白用户、初级工程师0成本免费系统学习、低成本进阶,帮助BAT一线资深工程师成长并利用自身优点创造睡后收入。
  • 官方公众号 | 愿码 | 愿码服务号 | 区块链部落
  • 免费加入愿码全思惟工程师社群 | 任一公众号回复“愿码”两个字获取入群二维码

本文阅读时长:9minpython

本文说明了如何运用Python API使用Twitter库链接到Twitter账户。具体来讲,此API容许用户提取与特定Twitter账户相关的大量数据,以及经过 Python 管理 Twitter 的帖子(例如一次发布多个推文)。 程序员

即便你是 Python 的初学者, 使用 Twitter Python 依赖包在分析方面也很是有用。例如,虽然Web开发人员可能更倾向于使用PHP等语言来链接API,但Python能够更灵活地分析数据的趋势和统计数据。所以,数据科学家和其余分析师会发现Python更适合这个目的。编程

咱们将从Python链接到Twitter API的一些基本步骤开始,而后查看如何流式传输所需的数据。须要注意的是,虽然Twitter库(以及其余Python库,如Tweepy和Twython)可使用数据执行大量不一样的任务,但咱们将专一于本文中的一些更基本(和有用)的查询,解决如下问题:api

  • 使用适当的凭据将Python链接到Twitter API
  • 下载与特定账户关联的推文
  • 下载账户的全部关注和关注用户的列表
  • 一次发布多条推文
  • 在Twitter上自定义搜索特定术语的实例。

1.将Python链接到Twitter API


本教程使用iPython做为Python接口链接到Twitter。为了链接到API,咱们须要获取Consumer KeyConsumer SecretAccess Token Secret网络

要得到这些,您须要在apps.twitter.com上登陆您的账户。到那里后,系统会提示您建立一个应用程序:app

建立应用程序后,您将在Keys and Access Tokens部分下找到相关的密钥和令牌。机器学习

首先,咱们在终端中安装python-twitter库,以下所示:编程语言

pip install python twitter

完成后,咱们导入Twitter库并输入凭据,以下所示:函数

import twitter
api = twitter.Api(consumer_key='your_consumer_key',
  consumer_secret='your_consumer_secret',
    access_token_key='your_access_token_key',
    access_token_secret='your_access_token_secret')
print(api.VerifyCredentials())

输入正确的凭证后,与API的链接即告完成,咱们如今能够经过Python平台控制咱们的Twitter账户!工具

2.下载用户时间线


如今咱们已经将Python链接到Twitter API,咱们能够继续开始远程使用不一样的Twitter功能。例如,若是咱们但愿下载推文的用户时间线,咱们使用以下方法(并指定相应账户的屏幕名称),而后使用该功能显示结果:

statuses = api.GetUserTimeline(screen_name='Michael Grogan')
print([s.text for s in statuses])

一旦咱们输入了上述内容,咱们就会在Python界面中看到相应的时间轴:

3.下载如下和如下联系人


Twitter库还使咱们可以下载特定用户正在关注的账户列表,以及做为该特定用户的关注者的账户。为此,咱们使用前者,后者使用:

users = api.GetFriends()
print([u.name for u in users])

followers = api.GetFollowers()
print([f.name for f in followers])

请注意,咱们还能够设置咱们但愿获取的用户数的上限。例如,若是咱们但愿为任何特定账户获取100个关注者,咱们能够经过向total_count函数添加变量来实现,以下所示:

followers = api.GetFollowers(total_count=100)
print([f.name for f in followers])

4.发布多个推文


使用Twitter API的一个巧妙之处是可以一次发布多条推文。例如,咱们可使用该命令同时发布如下两条推文(一样,使用该功能进行确认)。一旦咱们转到相关的Twitter账户,咱们就会看到这两条推文都已发布:

status = api.PostUpdate('How to calculate the Variance Inflation Factor in R: http://www.michaeljgrogan.com/ordinary-least-squares-an-analysis-of-stock-returns/ #rstats #datascience #programming')
print(status.text)
status = api.PostUpdate('#BigData Scientists Earn 10X to 15X More Money Compared to Engineers, CAs http://bit.ly/1NoAgto  #datascience')
print(status.text)

5.搜索推文

Twitter库中包含的getsearch()函数是一个特别强大的工具。此功能容许咱们在Twitter上搜索特定术语。请注意,这适用于已输入特定术语的全部用户,而不只仅是咱们在Python中提供凭据的账户。

例如,让咱们在Python中搜索术语“bigdata”。咱们设置的参数是自2016年11月21日起包含该术语的推文,咱们选择限制流式传输的推文数量为10:

api.GetSearch(term='bigdata', since=2016-11-21, count=10)

请注意,咱们能够经过各类方式自定义GetSearch()函数,具体取决于咱们但愿如何提取数据。例如,若是没有指定日期,这将花费更长的时间来流式传输,咱们也能够选择在2016年11月21日以前收集包含术语“bigdata”的推文,以下所示:

api.GetSearch(term='bigdata', until=2016-11-21, count=10)

值得注意的是,此函数在咱们在until变量下指定的日期以前下载最多7天的数据。

此外,咱们不只限于仅经过术语搜索GetSearch。例如,假设咱们但愿经过地理位置搜索推文 - 特别是自11月18日以来在纽约时代广场1英里范围内发送的推文(请注意,距离可使用mi或km分别以英里或千米格式化):

api.GetSearch(geocode="40.758896,-73.985130,1mi", since=2016-11-18)

运行该函数后,咱们看到Python返回如下推文(固然,还有什么更好的地方能够找到Donald Trump!):GetSearch()

如何使用这些数据?


如前所述,Python对流式社交网络数据极具吸引力的一个特殊缘由是可以对咱们收集的信息进行深刻的数据分析。

例如,咱们已经看到了如何使用位置搜索推文GetSearch。随着机器学习在分析社交媒体趋势的数据科学家中风靡一时,在这一领域变得很是流行的一种特殊技术是网络分析。这种技术实际上能够显示分散的数据(或节点)以造成紧密的网络,一般某些节点被证实是一个焦点。例如,假设咱们要分析全球十个不一样地点的1000条最受欢迎的推文。

在随机的某一天,尽管咱们看到网络中不一样推文之间存在一些相关性,但咱们可能仍会发现伦敦推文上的主题标签与纽约推文的主题标签差异很大。然而,在美国大选之夜或英国退欧这样的重大世界事件中,当Twitter对这一特定主题发展趋势时,发现网络每每更加紧密,所以,在这种状况下,情感分析的机会更多。一个场景,例如,很明显谁将赢得总统职位,或英国投票退出欧盟。人们一般会看到网络以不一样的方式汇集,这取决于趋势推文,由于能够得到更多的实时信息。

这只是Python的优点之一。虽然使用API链接到Twitter(能够在许多编程语言中完成)是一回事,可是可以使用分析以有意义的方式对数据进行排序是另外一回事。能够经过Python使用机器学习技术来分析来自社交网络的流数据并从该数据进行有意义的预测。

结论


模块文档提供了可用于Python下载,过滤和操做数据的不一样功能的很是详细的描述。最后,虽然咱们还研究了使用API直接发布到Twitter的方法,但上述技术在分析趋势时尤为有用,例如标签流行度,按位置搜索术语的频率等等。在这方面,经过Python与Twitter交互对于那些但愿对收集的信息实施数据分析技术的人特别有用。

固然,与Twitter的API交互可使用多种语言完成,具体取决于您的最终目标。若是目标是Web开发或设计,那么PHP或Ruby多是您最好的选择。可是,若是您的目标是使用从Twitter得到的数据进行有意义的分析,那么Python就是不二之选。

相关文章
相关标签/搜索