Jestem bardzo (bardzo) nowy w Pythonie i staram się, aby moja pętla przeszła przez strony w żądaniu - wydaje się, że zwraca tylko pierwszą stronę wyników, więc mogę tylko pomyśleć, że przegapiłem istotną część kodu. .... oto co mam do tej pory:
Żądania importu
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)
Każda pomoc mile widziana ... brak błędów, tylko pierwsza strona wyników!
4 odpowiedzi
Nie wiem więcej niż podstawy Pythona, ale wydaje mi się, że jest to prosty błąd składniowy. Spróbuj wykonać następujące czynności:
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)
Zasadniczo wygląda na to, że w opublikowanym kodzie dodawałeś do artykułów tylko jeden raz, ponieważ żaden z twoich kodów nie znajdował się w pętli for.
Zapomniałeś dodać wcięcia w kodzie do for, a także użyłeś i
jako łańcucha, a także część z niego nie musiała znajdować się wewnątrz pętli.
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)
Przede wszystkim Twój kod nie jest odpowiednio wcięty i zdefiniuj te zmienne przed użyciem ich w parametrze żądania.
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)
Kod miał niewłaściwe wcięcie i był używany jako ciąg. Zmienne przekazywane jako parametry dla requests.get
są definiowane po wywołaniu. Funkcjonalność pętli for nie jest obsługiwana, ponieważ instrukcja append znajduje się poza treścią pętli. Wielokrotne przypisywanie tych samych wartości zmiennym w pętli również nie jest eleganckie.
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)
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.
i
nigdzie, również, abyfor
działał, musisz zidentyfikować linie, na które ma to wpłynąć'page': 'i'
Myślę, że chciałeś, żeby to było'page ' : i