使用tweepy获取用户的推文

25 投票
3 回答
35305 浏览
提问于 2025-04-19 01:08

我正在使用tweepy和python 2.7.6来获取指定用户的推文。

我的代码如下:

import tweepy

ckey = 'myckey'
csecret = 'mycsecret'
atoken = 'myatoken'
asecret = 'myasecret'



auth = tweepy.OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)

api = tweepy.API(auth)

stuff = api.user_timeline(screen_name = 'danieltosh', count = 100, include_rts = True)

print stuff

但是,这段代码返回的结果是一些看起来像<tweepy.models.Status object at 0x7ff2ca3c1050>的消息。

有没有办法从这些对象中打印出有用的信息?我可以在哪里找到它们的所有属性?

3 个回答

1

在Tweeter API v2中,获取指定用户的推文其实很简单,只要你不超过3200条推文的限制。想了解更多信息,可以查看文档

import tweepy

# create client object
tweepy.Client(
        bearer_token=TWITTER_BEARER_TOKEN,
        consumer_key=TWITTER_API_KEY,
        consumer_secret=TWITTER_API_KEY_SECRET,
        access_token=TWITTER_ACCESS_TOKEN,
        access_token_secret=TWITTER_TOKEN_SECRET,
    )

# retrieve first n=`max_results` tweets
tweets = client.get_users_tweets(id=user_id, **kwargs)
# retrieve using pagination until no tweets left
while True:
    if not tweets.data:
        break
    tweets_list.extend(tweets.data)
    if not tweets.meta.get('next_token'):
        break
    tweets = client.get_users_tweets(
        id=user_id,
        pagination_token=tweets.meta['next_token'],
        **kwargs,
    )

tweets_list将会是一个包含tweepy.tweet.Tweet对象的列表。

5
import tweepy
import tkinter

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
# set parser=tweepy.parsers.JSONParser() if you want a nice printed json response.

userID = "userid"
user = api.get_user(userID)

tweets = api.user_timeline(screen_name=userID, 
                           # 200 is the maximum allowed count
                           count=200,
                           include_rts = False,
                           # Necessary to keep full_text 
                           # otherwise only the first 140 words are extracted
                           tweet_mode = 'extended'
                           )

for info in tweets[:3]:
    print("ID: {}".format(info.id))
    print(info.created_at)
    print(info.full_text)
    print("\n")

感谢来自 https://fairyonice.github.io/extract-someones-tweet-using-tweepy.html 的内容

26

很遗憾,Status 模型在 tweepy 的文档中并没有详细的说明。

user_timeline() 这个方法会返回一系列的 Status 对象实例。你可以使用 dir() 来查看这些对象有哪些属性和方法,或者直接看看 实际的代码实现

比如,从源代码中你可以看到有 authoruser 以及其他一些属性:

for status in stuff:
    print status.author, status.user

或者,你可以打印出 _json 属性的值,这里面包含了API调用的实际响应:

for status in stuff:
    print status._json

撰写回答