推特api库tweepy获取用户推文

cooolr 于 2022-09-16 发布

pip install tweepy

身份认证

Twitter Authentication documentation的补充

import tweepy

client = tweepy.Client("Bearer Token here")

Client API Document

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"])
# 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']
)
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("-------------------------------")