我对python非常(非常)陌生,正在努力让我的循环遍历请求中的页面-似乎只返回结果的第一页,所以我只能认为我错过了重要的部分代码.....这是我到目前为止的内容:
导入请求
articles = []
for i in range(1, 6):
response = requests.get(url=everything_news_url, headers=headers, params=everything_payload)
headers = {'Authorization': 'xxxxxxxxxxxxxxxxxxxx'}
everything_news_url = 'https://newsapi.org/v2/everything'
everything_payload = {
'q': 'cryptocurrency',
'language': 'en',
'sortBy': 'relevancy',
'from_param': '2019-10-20',
'to': '2019-11-11',
'page': 'i'
}
headlines_payload = {'category': 'business', 'country': 'us'}
sources_payload = {'category': 'general', 'country': 'us'}
articles.append(response)
非常感谢任何帮助...没有错误显示,只有结果的第一页!
答案 0 :(得分:1)
您忘记了将代码标识到for中,并且还使用了i
作为字符串,而且其中的一些不需要放在循环中。
headers = {'Authorization': 'xxxxxxxxxxxxxxxxxxxx'}
everything_news_url = 'https://newsapi.org/v2/everything'
headlines_payload = {'category': 'business', 'country': 'us'}
sources_payload = {'category': 'general', 'country': 'us'}
articles = []
for i in range (1, 6):
everything_payload = {'q': 'cryptocurrency', 'language': 'en', 'sortBy': 'relevancy',
'from_param' : '2019-10-20', 'to':'2019-11-11', 'page': i }
response = requests.get(url=everything_news_url,
headers=headers,
params=everything_payload)
articles.append(response)
答案 1 :(得分:1)
我对python的基础知识了解不多,但是在我看来,这是一个简单的语法错误。请尝试以下操作:
articles = []
for i in range (1, 6):
response = requests.get(url=everything_news_url,
headers=headers,params=everything_payload)
headers = {'Authorization': 'xxxxxxxxxxxxxxxxxxxx'}
everything_news_url = 'https://newsapi.org/v2/everything'
everything_payload = {'q': 'cryptocurrency', 'language': 'en', 'sortBy': 'relevancy',
'from_param' : '2019-10-20', 'to':'2019-11-11', 'page': 'i'}
headlines_payload = {'category': 'business', 'country': 'us'}
sources_payload = {'category': 'general', 'country': 'us'}
articles.append(response)
基本上,在您发布的代码中,您似乎只是一次附加到文章,因为您的代码实际上都没有进入for循环。
答案 2 :(得分:0)
首先,您的代码没有正确缩进,并在请求的参数中使用它们之前定义这些变量。
import requests
articles = []
for i in range (1, 6):
headers = {'Authorization': 'you api key'}
everything_news_url = 'https://newsapi.org/v2/everything'
everything_payload = {'q': 'cryptocurrency', 'language': 'en', 'sortBy': 'relevancy',
'from_param' : '2019-10-20', 'to':'2019-11-11', 'page': 'i'}
headlines_payload = {'category': 'business', 'country': 'us'}
sources_payload = {'category': 'general', 'country': 'us'}
response = requests.get(url=everything_news_url,
headers=headers,params=everything_payload)
articles.append(response)
print(articles)
答案 3 :(得分:0)
代码缩进不正确,我被用作字符串。在调用之后定义作为requests.get
的参数传递的变量。由于append语句不在循环主体之外,因此未提供for循环的功能。在循环中反复为变量分配相同的值也不是一件好事。
articles = []
headers = {'Authorization': 'xxxxxxxxxxxxxxxxxxxx'}
everything_news_url = 'https://newsapi.org/v2/everything'
headlines_payload = {'category': 'business', 'country': 'us'}
sources_payload = {'category': 'general', 'country': 'us'}
for i in range (1, 6):
everything_payload = {'q': 'cryptocurrency', 'language': 'en', 'sortBy': 'relevancy', 'from_param' : '2019-10-20', 'to':'2019-11-11', 'page': i}
response = requests.get(url=everything_news_url, headers=headers,params=everything_payload)
articles.append(response)