【问题标题】:Save full text of a tweet with tweepy使用 tweepy 保存推文的全文
【发布时间】:2015-06-17 18:01:51
【问题描述】:

我是python的新手程序员。我在尝试使用 tweepy 提取一系列推文的文本并将其保存到文本文件时遇到了麻烦(我省略了身份验证和其他内容)

search = api.search("hello", count=10)

textlist=[]

for i in range(0,len(search)):
    textlist.append( search[i].text.replace('\n', '' ) )

f = open('temp.txt', 'w')
for i in range(0,len(idlist)):
    f.write(textlist[i].encode('utf-8') + '\n')

但在一些长推文中,末尾的文本被截断,每个字符串的末尾出现一个三点字符“...”,所以有时我会丢失链接或主题标签。我怎样才能避免这种情况?

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    使用 tweepy,您可以使用 tweet_mode='extended' 获取全文(未在 Tweepy 文档中记录)。例如:

    (未扩展)

    print api.get_status('862328512405004288')._json['text']
    

    @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']
    

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

    【讨论】:

    • 可以批量处理吗?我相信他们的 statuses_lookup 可以这样做,但我认为扩展模式不起作用?
    • 不,这仅适用于一次处理一条推文的函数,因为推文模式选项直接传递给 API。您仍然可以使用自己的循环,它可能会更慢,但您的 API 限制不会受到影响
    【解决方案2】:

    ...(省略号)在推文是转推的一部分时添加(因此被截断)。 documentation中提到了这一点:

    表示文本参数的值是否被截断,例如 例如,由于转发超过 140 个字符的推文 长度。截断的文本将以省略号结尾,如下所示...

    没有办法避免这种情况,除非您获取每条单独的推文,然后搜索它的任何转推并构建完整的时间线(显然这对于​​简单的搜索是不切实际的,如果您要获取特定句柄的时间线)。

    您还可以简化代码:

    results = api.search('hello', count=10)
    
    with open('temp.txt', 'w') as f:
       for tweet in results:
           f.write('{}\n'.format(tweet.decode('utf-8')))
    

    【讨论】:

      【解决方案3】:

      这是转发的默认行为。您可以在retweeted_status 对象下访问全文。

      关于更改的 Twitter API 实体部分:

      https://dev.twitter.com/overview/api/entities-in-twitter-objects#retweets

      Twitter API 文档(查找“截断”)

      https://dev.twitter.com/overview/api/tweets

      【讨论】:

        猜你喜欢
        • 2019-02-16
        • 2020-04-11
        • 2019-03-06
        • 2019-04-09
        • 2019-06-21
        • 2019-04-13
        • 2019-05-06
        • 2019-02-25
        • 2018-12-08
        相关资源
        最近更新 更多