使用 Twitter API 获取 Twitter 用户名和关注者数量

Get Twitter username and number of followers with Twitter API

我想用 Twitter API 按关键字抓取 Twitter。 我正在使用 Twitter 搜索 API。

query = 'football'
tweet_fields = "author_id,created_at,text,public_metrics,possibly_sensitive,source,lang"
max_results = "50"

#define search twitter function
headers = {"Authorization": "Bearer {}".format(BEARER_TOKEN)}

url = "https://api.twitter.com/2/tweets/search/recent?query={}&tweet.fields={}&max_results={}".format(query, tweet_fields, max_results)
response = requests.request("GET", url, headers=headers)

status_code = response.status_code
print("Response Status Code:", status_code)

if response.status_code != 200:
    raise Exception(response.status_code, response.text)
else:
    pass

#print(response.json())
twitter_search_data = response.json()['data']

twitter_response = []
for data in twitter_search_data:
    print(data)

我取得了不错的成绩,但我也想取得 author_username。 现在我只能得到 author_id

我试图将其添加到我的 API link 但我没有得到这些结果:

expansions=author_id&user.fields={}
user_fields = "description,username"

url = "https://api.twitter.com/2/tweets/search/recent?query={}&tweet.fields={}&expansions=author_id&user.fields={}&max_results={}".format(query, tweet_fields, user_fields, max_results)

这是示例结果:

{'possibly_sensitive': False, 'source': 'Twitter for Android', 'lang': 'en', 'public_metrics': {'retweet_count': 1, 'reply_count': 0, 'like_count': 0, 'quote_count': 0}, 'created_at': '2021-10-05T12:23:05.000Z', 'id': '1445363916457005058', 'text': 'RT @COiNSTANTIN1: @MEXC_Global @PolkaExOfficial Check out @MiniFootballBsc We are bringing together the football and crypto community.\n⚽️Fa…', 'author_id': '1444275133854715912'}

有没有办法将一些东西添加到我的 Twitter API 以便我可以获得: 1.author 用户名 2.author 姓名 作者的 3.number 关注者 作者 4.number 的追随者

您的代码已接近您的需求,但您通过扩展请求的用户信息实际上是在名为 includes 的第二个数组中传送的;你错过了,因为你的代码只打印 data 数组中的每个值。

如果您想要指标(关注者数量/每个用户的关注者数量),您需要在查询中添加一个额外的用户字段:

user_fields = "description,username,public_metrics"

然后,您可以单独列出 includes,或者进行一些匹配以将用户对象与匹配的推文结合起来。最简单的做法是:

print(response.json()['data'])
print(response.json()['includes'])

您可以通过检查推文对象中的 author_id 与用户对象中的 id 值来匹配用户与推文数据。

还有一些工具和库可以帮助您自动执行此操作,例如,最新版本的 twarc 可以将这些数据“扁平化”为单个对象。