Tweepy截断状态

Abr*_*ain 9 python tweepy

我用tweepy挖掘用户时间线数据,并且在理解以下方面遇到了一些困难:

  1. '转推'和'截断'属性是指同一个东西(即超过140个字符的状态文本)?
  2. 如果没有,有什么区别?
  3. 我遇到了一个stackoverflow问题,有人询问如何检索由于长度超过140个字符而被"切断"的状态文本.它建议在_json字典中有一个转推属性,如果是这种情况则为true,完整状态文本将在status-> retweeted_status-> text下.但是,我无法找到它,并且唯一的状态文本位于status->以'...'结尾的文本中.我弄错了吗?如果是这样,我如何获得全文?

感谢您的帮助.

mou*_*rix 12

'转推'和'截断'属性是指同一个东西(即超过140个字符的状态文本)?如果没有,有什么区别?

不,推文不仅可以在转发(转发)之后被截断,而且也可以在回复或提及之后被截断(请参阅下面的示例,而不是转推).如果是这种情况,'truncated'将被设置为'True'(并且'转推'将为True或False).如果推文没有被截断,因为它的大小远低于140个字符,也可以将'转推'等于True,而'截断'等于False.

它建议在_json字典中有一个转推属性,如果是这种情况则为真,并且完整状态文本将在status-> retweeted_status-> text下.

只有当推文是真正的转发时才是这样.实际上,如果retweeted_status来自另一个截断的推文,它本身就会被截断.最好的方法是使用tweet_mode='extended'Tweepy中的参数来检索全文(遗憾的是未在Tweepy doc中记录).例如:

(未延期)

print api.get_status('862328512405004288')._json['text']
Run Code Online (Sandbox Code Playgroud)

@tousuncotefoot @equipedefrance @CreditAgricole @AntoGriezmann @KMbappe @layvinkurzawa @UmtitiSam J'ai jamais vue d ... https:// tco/kALZ2ki9Vc

(扩展)

print api.get_status('862328512405004288', tweet_mode='extended')._json['full_text']
Run Code Online (Sandbox Code Playgroud)

@tousuncotefoot @equipedefrance @CreditAgricole @AntoGriezmann @KMbappe @layvinkurzawa @UmtitiSam J'ai jamais vue de match de foot et cela ferait un beau cadeau pour mon copain !!


Jea*_*Jea 5

关于问题3)

考虑到tweet超过140个字符(在这种情况下,状态对象将具有extended_tweet字典),以下是从Tweepy流侦听器访问扩展状态文本的方法。如果推文不超过140个字符,则照常获取状态文本:

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        try:
            text = status.extended_tweet["full_text"]
        except AttributeError:
            text = status.text
Run Code Online (Sandbox Code Playgroud)