首页 > 解决方案 > 如何使用 API 3.9 中的 Tweepy 检索一周前的推文

问题描述

import tweepy,re,json,matplotlib.pyplot as plt, seaborn as sns,pandas as pd
from textblob import TextBlob
consumer_key = "key"
consumer_secret = "key"
access_key = "key"
secret_key = "key"
autenticacion = tweepy.OAuthHandler(consumer_key, consumer_secret)
autenticacion.set_access_token(access_key, secret_key)
"""Variable donde voy a llamar a la API"""
api = tweepy.API(autenticacion, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
results = tweepy.Cursor(api.search, q='Panamá', tweet_mode="extended",lang="en",since='2020-11-12',until='2020-11-18').items(2000)
term = 'Panamá'
json_data = [r._json for r in results]
df = pd.io.json.json_normalize(json_data)

我正在尝试从一周前的今天日​​期提取一千条推文,但我提取的所有推文都来自今天的日期。如何均匀地提取日期从一周前到今天的推文?

标签: pythontwittertweepy

解决方案


Twitter API 本身不支持在一周内每天均匀分布结果,因此您必须自己实现这一点。count 参数仅支持每页最多 100 个结果。目前,您的代码基本上要求从现在开始回顾 100 条推文。

您可以尝试以下方法:

  • 将你的 1000 个结果按 7 天分解(为了更容易,让我们让它每天 100 个,所以总共 700 个推文)
  • 围绕您的第二个代码块创建一个 7 遍循环,并且对于每次迭代,搜索 100 个结果,每次都为同一天制作since和值,so to , to等until'2020-11-12''2020-11-12''2020-11-13''2020-11-13'
  • 在每次循环迭代中,将数据附加到数据框中

另请注意,您所在的行在term = 'Panamá'上面的代码中显然未使用。


推荐阅读