[英]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.