我尝试从《纽约时报》获取新闻文章,但没有返回。完全没有反应。我在网络浏览器上对 URL 进行了故障排除和测试,它确实返回了新闻文章。在《纽约时报》开发人员的“PATHS”页面上,它还为我的 API 返回了 200。不知道是不是因为这两个月我想要的新闻文章太大,sleep时间不够,限制了API速率?有人可以帮我修改我的代码吗?
api_key = "my_NYT_api_key"
query = "Israel Palestine"
filter_query = "news_desk:(\"Foreign\"OR \"Politics\" OR \"World\") AND type_of_material:(\"News\" OR \"Article\") AND pub_date:([2023-10-07 TO 2023-11-21]) "
page = "0"
sort = "relevance"
facet_fields = "news_desk,section_name"
def send_request(query, filter_query, facet_fields, api_key):
base_url = "https://api.nytimes.com/svc/search/v2/articlesearch.json"
url = (f"{base_url}?q={query}&fq={filter_query}&facet_fields=facet_fields}&page={page}&sort={sort}&"
f"facet=true&facet_filter=true&api-key={api_key}")
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
response = requests.get(url, headers=headers)
print("HTTP Status Code:", response.status_code) # Check HTTP status
print("Raw Response:", response.text) # Print raw response text
time.sleep(6)
return response.json()
def parse_response(response):
data = {
'headline': [],
'pub_date': [],
'web_url': [],
'image_url': [],
'timestamp': [],
}
articles = response['response']['docs']
for article in articles:
data['headline'].append(article['headline']['main'])
data['pub_date'].append(article['pub_date'])
data['web_url'].append(article['web_url'])
data['timestamp'].append(article['pub_date'])
multimedia = article.get('multimedia', [])
image_url = multimedia[0]['url'] if multimedia else 'No image'
data['image_url'].append(image_url)
return pd.DataFrame(data)
def get_data(query, filter_query, facet_fields, api_key):
response = send_request(query, filter_query, facet_fields, api_key)
if response: # Check if response is not empty
df = parse_response(response)
print(f"Number of articles collected: {len(df)}")
return df
else:
print("No data received")
return pd.DataFrame()
不知道是不是因为我一天请求次数太多(虽然从来没有返回任何文章)?这就是为什么 NYT 限制我的 api 密钥的速率?
我也有同样的问题。在 NYTs API 的常见问题解答中,您可以找到以下内容: