读者大家好,在本文中,我将向您介绍 Twitter API,即 Tweepy,它用于使用 Python 检索推文。我希望您会喜欢阅读这篇文章。
使用 Python 从 Twitter 提取推文的要求
让我们回顾一下开始之前需要做什么。
1. Twitter 开发者帐户
为了访问 Tweepy API,创建一个开发者帐户非常重要,并且该帐户必须获得 Twitter 的批准。因此,请确保您提供了正确的详细信息以及使用 Tweepy 的正确理由。
以下是创建开发者帐户的方法。
- 访问 Twitter 开发者网站dev.twitter.com。
- 单击右上角的“登录”按钮,在开发者网站上创建一个帐户。
- 登录后,单击导航栏上的开发人员链接。
- 单击您的帐户,然后从出现的下拉菜单中选择“应用程序”。
- 单击“创建应用程序”按钮并填写您的应用程序的详细信息。
- 为应用程序创建访问令牌。将此访问令牌复制到文件中并妥善保管。
- 完成此操作后,记下您的 OAuth 设置,其中包括 – 消费者密钥、消费者秘密、OAuth 访问令牌、OAuth 访问令牌秘密。
2.电子表格阅读器软件
您将需要一个可以读取电子表格的软件,例如 Microsoft Excel 或 LibreOffice Reader。
从 Twitter 中提取推文的代码
在此编码示例中,我们将使用 Tweepy 从 twitter.com 提取数据。
1. 导入所需的库并设置 OAuth 令牌
因此,首先,导入必要的库,例如 tweepy 和 pandas,并声明在 Twitter 开发人员仪表板上创建应用程序期间获得的 OAuth 令牌。
from tweepy import * import pandas as pd import csv import re import string import preprocessor as p consumer_key = <enter your consumer key> consumer_secret = <enter key> access_key = <enter key> access_secret = <enter key> |
2. 使用 Tweepy 的 OAuthhandler 进行授权
现在我们已经定义了密钥,我们将继续使用 tweepy 的 OAuthHandler 对自己进行授权。我们将传递密钥,如下所示。
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) |
我们现在将这些授权详细信息传递给 tweepy,如下所示。
api = tweepy.API(auth,wait_on_rate_limit = True ) |
3. 从 Twitter 中提取特定推文
您可以按名称定义变量search_words
并指定要检索其推文的单词。
Tweepy 检查该特定关键字的所有推文并检索内容。这可以是标签、@提及,甚至是普通的单词。
有时,甚至转发也是摘录,为了避免我们过滤转发。
search_words = "#" #enter your words new_search = search_words + " -filter:retweets" |
现在,对于 Tweepy 光标中的每条推文,我们搜索单词并传递它,如下所示。然后我们将内容写入 csv 文件,如 utf-8 编码后所示。
4. 提取推文元数据
在下面的代码片段中,我希望只检索推文的创建时间、推文的文本、用户名和位置。
for tweet in tweepy.Cursor(api.search,q = new_search,count = 100 , lang = "en" , since_id = 0 ).items(): csvWriter.writerow([tweet.created_at, tweet.text.encode( 'utf-8' ),tweet.user.screen_name.encode( 'utf-8' ), tweet.user.location.encode( 'utf-8' )]) |
现在,我们将以追加模式打开一个csv 文件,并将 twitter 中的内容写入该文件。
csvFile = open ( 'file-name' , 'a' ) csvWriter = csv.writer(csvFile) |
5. 使用 Python 和 Tweepy 从 Twitter 中提取推文的完整代码
整个代码如下所示。您可以执行此命令并在与 python 文件相同的工作目录中找到一个包含所需所有数据的 csv 文件。
from tweepy import * import pandas as pd import csv import re import string import preprocessor as p consumer_key = <enter your consumer key> consumer_secret = <enter key> access_key = <enter key> access_secret = <enter key> auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) api = tweepy.API(auth,wait_on_rate_limit = True ) csvFile = open ( 'file-name' , 'a' ) csvWriter = csv.writer(csvFile) search_words = "#" # enter your words new_search = search_words + " -filter:retweets" for tweet in tweepy.Cursor(api.search,q = new_search,count = 100 , lang = "en" , since_id = 0 ).items(): csvWriter.writerow([tweet.created_at, tweet.text.encode( 'utf-8' ),tweet.user.screen_name.encode( 'utf-8' ), tweet.user.location.encode( 'utf-8' )]) |
上述代码的输出是一个 csv 文件,如下所示:
请注意,输出将根据搜索关键字而有所不同。
结论
因此,我们已经到了本文的结尾,并尝试从 Tweepy 检索一些信息。希望你喜欢这样做!请在下面的评论部分告诉我们您的反馈。