可以减少GetOldTweets3花费的时间

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

我最近尝试了GetOldTweets3(https://pypi.org/project/GetOldTweets3/)以下载包含单词“ iPhone”的推文。该代码可以在下面看到,它获取所有推文,然后将其写入csv。

def get_tweets(keyword, start_date, end_date, max_tweets):

    start_time = time.time()

    tweetCriteria = got.manager.TweetCriteria().setQuerySearch(keyword).setSince(start_date).setUntil(end_date).setMaxTweets(max_tweets).setLang("en")

    # List of object get stored in "tweets" variable
    tweets = got.manager.TweetManager.getTweets(tweetCriteria)

    elapsed_time = time.time() - start_time
    print(elapsed_time)

    with open(url + "/twitter_scrape_" + start_date + ".csv", "w", encoding = "utf-8") as csvfile:
        fieldnames = ["Date", "Username", "Tweet", "No. of Retweets"]
        writer = csv.DictWriter(csvfile, fieldnames = fieldnames, lineterminator = "\n")

        writer.writeheader()

        for tweet in tweets:
            writer.writerow({"Date": tweet.date,
                             "Username": str(tweet.username), 
                             "Tweet": str(tweet.text),
                             "No. of Retweets": str(tweet.retweets)})

    print("Data is stored in: " + url)


get_tweets("iPhone", "2013-09-10", "2013-09-11", 10000)

但是,这些是我尝试下载推文的时间(以秒为单位)。

10条推文:〜2秒| 1,000条推文:〜126秒| 10,000条推文:〜1400秒

我正在尝试下载与该关键字有关的一天的推文。有没有办法:1)对我来说我正在检查进度,因为上面的代码将加载,但是我无法检查状态,以及2)有没有一种更快的方法来获取数据而不是使用GetOldTweets3 ?

感谢您的帮助!

python twitter
1个回答
0
投票
  1. 尝试Python to print out status bar and percentage
  2. 尝试将https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example用于多线程。您可以运行一些配置文件测试以查看哪个零件花费的时间最多。我想这是网址开放部分。因此多线程将为您提供帮助。
© www.soinside.com 2019 - 2024. All rights reserved.