如何在tweepy中返回实际推文?

13 投票
5 回答
16569 浏览
提问于 2025-04-17 04:01

我在用tweepy写一个推特程序。当我运行这段代码时,它打印出了一些Python的...值,比如

<tweepy.models.Status object at 0x95ff8cc>

这可不好。我该怎么才能获取到真实的推文呢?

import tweepy, tweepy.api
key = XXXXX
sec = XXXXX

tok  = XXXXX
tsec = XXXXX

auth = tweepy.OAuthHandler(key, sec)
auth.set_access_token(tok, tsec)
api = tweepy.API(auth)

pub = api.home_timeline()
for i in pub:
        print str(i)

5 个回答

1

api.home_timeline() 这个方法会返回一个包含20个推文的列表,这些推文是最热门的20条。也就是说,每条推文都被看作是一个 Status 类的对象。每个 Status 对象都有一些属性,比如 id(推文的编号)、text(推文的内容)、user(发布推文的用户)、place(地点)、created_at(创建时间)等等。

下面的代码会打印出推文的编号和内容:

tweets = api.home_timeline()
for tweet in tweets:
  print tweet.id, " : ", tweet.text
3

看看这个getstate()方法,它可以用来查看返回的对象。

for i in pub:
    print i.__getstate__()
24

一般来说,你可以使用 Python 中的 dir() 这个内置函数来查看一个对象的内容。

看起来 Tweepy 的文档在这方面信息不太够,但我想 Status 对象的结构应该和 Twitter 的 REST 状态格式相似,比如你可以参考这个链接: https://dev.twitter.com/docs/api/1/get/statuses/home_timeline

所以——试试

print dir(status)

看看状态对象里面有什么内容

或者你也可以这样做,

print status.text
print status.user.screen_name

撰写回答