- 安装
pip install tweepy
- 认证
Twitter Authentication documentation的补充
import tweepy
client = tweepy.Client("Bearer Token here")
- 根据用户名称获取用户id、头像和描述
user = client.get_user(username="GenxAnalytics", user_fields=["profile_image_url", "description"])
user_id = user.data.id
# 头像默认返回小图,需要替换掉__normal才是大图
# https://stackoverflow.com/questions/21485205/how-to-get-bigger-size-user-image-with-twitter-api-1-1
user_img = user.data.profile_image_url.replace('_normal', '')
user_desc = user.data.description
nickname = user.data.name
批量获取
client.get_users(usernames=['1', '2'], user_fields=["profile_image_url", "description"])
- 根据用户id获取用户推文
# max_results=100 最大可获取100条
tweets = client.get_users_tweets(user_id, max_results=100).data
- 获取推文的发布时间
在 Python 中使用 Twitter API v2和 Tweepy 的全面指南 (10. Getting a user’s timeline)
tweets = client.get_users_tweets(
user_id,
tweet_fields=['context_annotations','created_at','geo']
)
-
过滤回复和转发
过滤转推:
exclude=’retweets’
过滤回复:
exclude=’replies’
tweets = client.get_users_tweets(
user_id,
exclude=replies
)
- 获取推文的媒体信息
在 Python 中使用 Twitter API v2和 Tweepy 的全面指南 (7. Getting Tweets with media information)
tweets = client.get_users_tweets(
user_id,
tweet_fields=['context_annotations','created_at','geo'],
media_fields=['alt_text','duration_ms','height','media_key','non_public_metrics','organic_metrics','preview_image_url','promoted_metrics','public_metrics','type','url','variants','width'],
expansions='attachments.media_keys',
exclude='replies',
max_results=10
)
media = {m["media_key"]: m for m in tweets.includes['media']}
for tweet in tweets.data:
if not tweet.data.get('attachments'):
continue
attachments = tweet.data['attachments']
media_keys = attachments['media_keys']
print(media[media_keys[0]].data)
if media[media_keys[0]].url:
print(tweet.text, media[media_keys[0]].url)
print("-------------------------------")