簡體   English   中英

使用tweepy保存推文的全文

[英]Save full text of a tweet with tweepy

我是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')

但是在一些長推文中,末尾的文本被截斷,並且在每個字符串的末尾出現了三個點字符“ ...”,因此有時我會丟失鏈接或主題標簽。 如何避免這種情況?

使用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 !! 🙏🏻🙏🏻🙏🏻😍😍

當推文是轉推的一部分(並因此被截斷)時,添加... (省略號)。 文檔中提到了這一點:

指示是否例如由於轉發超過140個字符的Tweet長度而將text參數的值截斷了。 截斷的文本將以省略號結尾,像這樣...

沒有辦法避免這種情況,除非您獲取每個單獨的tweet,然后搜索其中的任何tweet,並構建完整的時間軸(顯然,這對於簡單的搜索而言不切實際,如果您要獲取特定句柄的時間軸,則可以這樣做)。

您還可以簡化代碼:

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')))

這是轉推的默認行為。 您可以在retweeted_status對象下訪問全文。

Twitter API實體部分中的更改:

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

Twitter API文檔(查找“截斷的”)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM