6.2 KiB
如何用 Python 连接 Twitter
原文:https://www.blog.pythonlibrary.org/2014/09/26/how-to-connect-to-twitter-with-python/
有几个第三方包包装了 Twitter 的 API。我们将关注 tweepy 和 T2 的 twitter。tweepy 文档比 twitter 的更广泛一些,但是我觉得 twitter 包有更多具体的例子。让我们花一些时间来看看如何使用这些软件包!
入门指南
要开始使用 Twitter 的 API,您需要创建一个 Twitter 应用程序。为此,你必须去他们的开发者网站创建一个新的应用程序。创建应用程序后,您将需要获得您的 API 密钥(或者生成一些)。您还需要生成您的访问令牌。
因为 Python 中没有包含这两个包,所以您也需要安装它们。要安装 tweepy,只需执行以下操作:
pip install tweepy
要安装 twitter,你可以做同样的事情:
pip install twitter
现在你应该准备好出发了!
发布状态更新
你应该能够用这些包做的一个基本事情是在你的 Twitter 账户上发布一个更新。让我们看看这两个软件包在这方面是如何工作的。我们从十二层开始。
import tweepy
auth = tweepy.OAuthHandler(key, secret)
auth.set_access_token(token, token_secret)
client = tweepy.API(auth)
client.update_status("#Python Rocks!")
嗯,这是相当直截了当的。我们必须用我们的密钥创建一个 OAuth 处理程序,然后设置访问令牌。最后,我们创建了一个表示 Twitter API 的对象,并更新了状态。这个方法对我很有效。现在让我们看看我们是否能让 twitter 包工作。
import twitter
auth=twitter.OAuth(token, token_secret, key, secret)
client = twitter.Twitter(auth=auth)
client.statuses.update(status="#Python Rocks!")
这段代码也非常简单。事实上,我认为 twitter 包的 OAuth 实现比 tweepy 的更干净。
注意:我在使用 twitter 包时有时会得到以下错误:错误的认证数据,代码 215 。我不完全确定为什么当你查找这个错误时,它应该是因为你使用 Twitter 的旧 API 而引起的。如果是这样的话,那么它就永远不会起作用。
接下来,我们将看看如何获得我们的时间线。
获取时间线
在这两个包中获得你自己的 Twitter 时间表真的很容易。让我们来看看 tweepy 的实现:
import tweepy
auth = tweepy.OAuthHandler(key, secret)
auth.set_access_token(token, token_secret)
client = tweepy.API(auth)
timeline = client.home_timeline()
for item in timeline:
text = "%s says '%s'" % (item.user.screen_name, item.text)
print text
所以在这里我们得到认证,然后我们调用 home_timeline() 方法。这将返回一个对象的 iterable,我们可以循环遍历这些对象并从中提取各种数据。在这种情况下,我们只提取屏幕名称和 Tweet 的文本。让我们看看 twitter 包是如何做到这一点的:
import twitter
auth=twitter.OAuth(token, token_secret, key, secret)
client = twitter.Twitter(auth=auth)
timeline = client.statuses.home_timeline()
for item in timeline:
text = "%s says '%s'" % (item["user"]["screen_name"],
item["text"])
print text
twitter 包非常相似。主要区别在于它返回一个字典列表。
如果你想得到别人的时间线。在十二岁时,你会这样做:
import tweepy
auth = tweepy.OAuthHandler(key, secret)
auth.set_access_token(token, token_secret)
client = tweepy.API(auth)
user = client.get_user(screen_name='pydanny')
timeline = user.timeline()
twitter 包有点不同:
import twitter
auth=twitter.OAuth(token, token_secret, key, secret)
client = twitter.Twitter(auth=auth)
user_timeline = client.statuses.user_timeline(screen_name='pydanny')
在这种情况下,我认为 twitter 包更干净一些,尽管有人可能会说 tweepy 的实现更直观。
让你的朋友和追随者
几乎每个人在 Tritter 上都有朋友(他们追随的人)和追随者。在本节中,我们将了解如何访问这些项目。twitter 包并没有一个很好的例子来寻找你的 Twitter 朋友和追随者,所以在这一节我们将只关注 tweepy。
import tweepy
auth = tweepy.OAuthHandler(key, secret)
auth.set_access_token(token, token_secret)
client = tweepy.API(auth)
friends = client.friends()
for friend in friends:
print friend.name
如果您运行上面的代码,您会注意到它打印出来的最大朋友数是 20。如果你想打印出你所有的朋友,那么你需要使用光标。使用光标有两种方式。您可以使用它来返回页面或特定数量的项目。在我的例子中,我关注了 32 个人,所以我选择了 items 的工作方式:
for friend in tweepy.Cursor(client.friends).items(200):
print friend.name
这段代码将迭代多达 200 项。如果你有很多朋友或者你想迭代别人的朋友,但是不知道他们有多少,那么使用 pages 方法更有意义。让我们来看看这可能是如何工作的:
for page in tweepy.Cursor(client.friends).pages():
for friend in page:
print friend.name
这很简单。获取您的关注者列表完全相同:
followers = client.followers()
for follower in followers:
print follower.name
这也将只返回 20 个项目。我有很多追随者,所以如果我想获得他们的列表,我必须使用上面提到的光标方法之一。
包扎
这些包提供了比本文所涵盖的更多的功能。我特别推荐看 tweepy,因为使用 Python 的自省工具比 twitter 包更直观、更容易理解。如果你还没有一堆这样的应用程序,你可以很容易地使用 tweepy,并围绕它创建一个用户界面,让你与你的朋友保持同步。另一方面,对于初学者来说,这仍然是一个很好的程序。