[英]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文檔(查找“截斷的”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.