以下是重现问题的代码的简化版本:
import tweepy
from tweepy import OAuthHandler
consumer_key = '...'
consumer_secret = '...'
access_token = '...'
access_secret = '...'
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
tweepy_api = tweepy.API(auth)
status_id = 999280226994671616
status = tweepy_api.get_status(status_id, tweet_mode='extended')
print(status.user.screen_name) # Prints 'VP' as it should
if status.retweeted: # Is false, even though it's a retweet
print('RETWEET:', status.retweeted_status.full_text)
elif status.is_quote_status: # Is true
qstatus = tweepy_api.get_status(status.quoted_status_id, tweet_mode='extended')
print(status.full_text, '\nQUOTE:', qstatus.full_text) # Doesn't print full text for either status
else:
print(status.full_text)
我想知道is_quote_status
的原因是否正确是因为转推包含引号。那么如何检测状态是否为转推呢?
这是一个次要问题,但正如我的评论所指出的那样,它也没有显示全文(当状态不是转发或报价时它会很好)。我做错了什么?
答案 0 :(得分:1)
转发是一条推文,推文可能引用另一条推文,因此推文可以引用推文。
在你的情况下:
推文ID 999280226994671616来自@vp。
这是来自@SecondLady(https://twitter.com/SecondLady/status/999275458796687360)的推文ID 999275458796687360的推文。
此推文引用了来自@SenEvanBayh(https://twitter.com/SenEvanBayh/status/999013390528937991)的推文ID 999013390528937991
要知道推文是否为RT,请检查状态是否具有retweeted_status属性。
这:
status_id = 999280226994671616
status = tweepy_api.get_status(status_id, tweet_mode='extended')
print ('status.id_str:' + status.id_str)
print ('status.user.screen_name:@' + status.user.screen_name)
print()
if hasattr(status, 'retweeted_status'):
print ('status.retweeted_status.user.screen_name:' + status.retweeted_status.user.screen_name)
print ('status.retweeted_status.id_str:' + status.retweeted_status.id_str)
print()
qstatus = tweepy_api.get_status(status.retweeted_status.quoted_status_id, tweet_mode='extended')
print ('qstatus.id_str:' + qstatus.id_str)
print ('qstatus.user.screen_name:@' + qstatus.user.screen_name)
print()
将打印:
status.id_str:999280226994671616
status.user.screen_name:@VP
status.retweeted_status.user.screen_name:SecondLady
status.retweeted_status.id_str:999275458796687360
qstatus.id_str:999013390528937991
qstatus.user.screen_name:@SenEvanBayh
希望它有所帮助。