有什么方法可以使用python在高音扬声器中下载全文

问题描述 投票:0回答:2

我正在尝试根据关键字下载推文,这是我正在使用的那段代码,但是问题是我无法下载整个推文。它仅显示前140个字符。如何下载完整的推文?

import tweepy
import csv
import pandas as pd
####input your credentials here
consumer_key =''
consumer_secret =''
access_token =''
access_token_secret=''

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth,wait_on_rate_limit=True)
#####United Airlines
# Open/Create a file to append data
csvFile = open(r'C:\Users\iiit\Desktop\tweets.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)

for tweet in tweepy.Cursor(api.search,q="#hashtag",count=1000,
                           lang="en",
                           since="2020-04-14").items():
    print (tweet.created_at, tweet.text)
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])
python-3.x file download full-text-search tweepy
2个回答
0
投票

根据官方的tweepy文档:

返回状态对象(tweets)的

tweepy.API方法接受一个参数,该参数可以是兼容性或扩展模式。默认参数是兼容模式。兼容模式将推文截断为140个字符。这就是您的程序当前正在执行的操作。

如果需要全文,则应使用扩展模式。传递kwag tweet_mode="extended"声明要使用的模式。然后使用tweet.text

代替tweet.full_text

您的新代码应如下所示:

for tweet in tweepy.Cursor(api.search,
    q="#hashtag", count=5, lang="en",
    since="2020-05-07", tweet_mode="extended").items():
    print (tweet.created_at, tweet.full_text)
    csvWriter.writerow([tweet.created_at, tweet.full_text.encode('utf-8')])

我还没有测试,但是应该可以。


0
投票

据我所知,有一种策略,兼容模式将推文截断为140个字符。但是此Status事件处理程序可以用于StreamListener,以打印Tweet的全文,或者如果是Retweet,则打印Retweeted Tweet的全文作为其文档。

def on_status(自身,状态):if hasattr(status,“ retweeted_status”):#检查是否转发尝试:打印(status.retweeted_status.extended_tweet [“ full_text”])除了AttributeError:打印(status.retweeted_status.text)其他:尝试:打印(status.extended_tweet [“ full_text”])除了AttributeError:打印(状态文本)

这可能对您有帮助。here

© www.soinside.com 2019 - 2024. All rights reserved.