Я пытаюсь использовать NewsApi для создания необработанного набора данных. Бесплатная версия NewsApi ограничивает только 100 статей на запрос и может быть go не старше 30 дней. Я написал функции для l oop через каждый день 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