python - 在循环不同日期时获取重复数据以每天从 NewsApi 获取 100 篇文章(免费版本限制)
问题描述
我正在尝试使用 NewsApi 来制作我的原始数据集。NewsApi 的免费版本每个请求仅限制 100 篇文章,最长可保存 30 天。我编写了函数来循环遍历 30 天期间的每一天,以收集总共 3000 篇文章(每天 100 篇)。然而,似乎很多文章都是重复的。我不明白我哪里出错了,有人可以帮我解决这个问题吗?这是我的代码:
def last_30_days(date): # function to calculate last 30 days
date_list = [date - timedelta(days=x) for x in range(30)]
return sorted(date_list)
def from_date(x): # function to calculate the from_param
from_date=[]
for i in range(len(x)):
from_date.append(last_30_days(datetime.today())[i-1].date())
return from_date
def to_date(x): # function to calculate the to_param
to_date=[]
for i in range(len(x)):
to_date.append(last_30_days(datetime.today())[i].date())
return to_date
from_date_list = from_date(last_30_days(datetime.today()))
to_date_list = to_date(last_30_days(datetime.today()))
api_key_1 = 'XXXXXXXXXXXXXXXXX'
url = 'http://newsapi.org/v2/everything?'
parameters_1 = {
'q':'covid OR coronavirus OR pandemic',
'apiKey':api_key_1,
'language': 'en',
'pageSize': 100,
'page_number':1,
'sort_by': 'publishedAt',
'from':from_date,
'to':to_date
}
data_1 = pd.DataFrame()
for (from_date, to_date) in zip(from_date_list, to_date_list):
response = requests.get(url, params=parameters_1)
response_json = response.json()
d1 = json_normalize(response_json['articles'])
data_1 = data_1.append(d1)
data_1
解决方案
推荐阅读
- ios - 您可以将 UIView 添加到 UIStackview 吗?
- php - 使 Cakephp 网址对 SEO 更友好
- selenium - OpenQA 无法检测到我的 chromedriver webdriver
- typescript - 如何传递通过 TypeScript 中的索引访问的通用值类型?
- javascript - 使用 next.js 和样式 jsx 加载字体
- django - Django model unique=True 不抛出原子事务中使用的任何错误
- java - 在春季启动失败期间是否可以禁用 LoggingFailureAnalysisReporter?
- c++ - winAPI 旋转屏幕上的图像,同时保持居中并更新背景
- visual-studio - git fetch --prune origin 有什么作用?
- c# - C# Nullable 属性 - 通用数组项