【发布时间】:2017-05-30 22:21:54
【问题描述】:
我是 Python 的超级新手,但我正在尝试访问 Twitter API 以获取 Twitter 句柄列表(或用户 ID - 我有两个数据集)的关注者数量并将它们打印到 csv 文件。我已经为此搜索了很长时间,但没有找到任何真正有效的方法。
这是我目前拥有的:
import tweepy
import time
import csv
import sys
# Keys, tokens and secrets
consumer_key = 'REMOVED'
consumer_secret = 'REMOVED'
access_token = 'REMOVED'
access_token_secret = 'REMOVED'
# Tweepy OAuthHandler
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
targets = [12345,123456] # All your targets here
for target in targets:
user = api.get_user(target)
print(user.name, user.followers_count)
我的问题是:
我可以将所有目标都放在一个预填充的文件中,并在 ID 旁边的列中打印每个目标的关注者数量吗?
如何添加 count-break 因为:twitter API 一次只允许搜索 100 个用户...[所以] 你需要做的是遍历每 100 个用户,但是保持在速率限制内。
抱歉,如果这是超级基本的,并提前感谢您的帮助!
【问题讨论】:
-
对你所有问题的回答是肯定的,这是可能的,但我需要澄清一下。当我运行您的代码时,我得到两行输出,每行为
<user.name> <user.followers_count>,(例如:kevin mcsheehan 508)。您是什么意思“在 ID 旁边的列中打印出来”?哪一列,ID 是什么? -
对于从文件中读取,在与您的python脚本相同的位置创建一个文件,例如
targets.txt,每行一个ID,然后将for target in targets:行替换为这两行:with open('targets.txt', 'r') as targets: for target in targets.readlines(): -
谢谢你。关于您的第一个问题(并使用相同的示例),我希望将结果打印在 csv 文件中,然后我可以将其导出到 Google Sheets 或 Excel。因此,理想情况下,我会从一个 csv 文件开始,假设 A 列中有 100 个用户名。然后我将运行脚本以在相关用户名旁边的 B 列中打印关注者计数。所以输出将是一个 csv 文件,在单元格 A1 中带有“kevin_mcsheehan”,在 B1 中带有 508。这有意义吗?
-
是的,这是有道理的,谢谢。好的,这将写入
csv文件拆分username和followers_count在列A和B:with open('targets.txt', 'r') as targets_file: with open('output.csv', 'wb') as outcsv: outfile = csv.writer(outcsv) for target in targets_file.readlines(): user = api.get_user(target.strip()) outfile.writerow([user.name.lower(), user.followers_count])
标签: python twitter-bootstrap twitter tweepy