Python-requests Argumente/Umgang mit api-Paginierung
Ich bin Herumspielen mit der Angel Liste (AL) - API und wollen, ziehen Sie alle jobs in San San Francisco.
Da ich nicht finden konnte, ein active Python-wrapper für die api (wenn ich Sie machen keine Fortschritte, ich denke, ich würde gerne meine eigenen), ich bin mit den Anforderungen der Bibliothek.
AL-API sind die Ergebnisse paginiert, und ich kann nicht herausfinden, wie man sich über die erste Seite der Ergebnisse.
Hier ist mein code:
import requests
r_sanfran = requests.get("https://api.angel.co/1/tags/1664/jobs").json()
r_sanfran.keys()
# returns [u'per_page', u'last_page', u'total', u'jobs', u'page']
r_sanfran['last_page']
#returns 16
r_sanfran['page']
# returns 1
Habe ich versucht, indem Argumente zu requests.get
, aber das hat nicht funktioniert. Ich habe auch versucht, etwas wirklich dumm - ändern des Wertes der "page" - Taste, wie das war magisch gehen, um den Umbruch für mich.
zB. r_sanfran['page'] = 2
Ich vermute, es ist etwas, was relativ einfach ist, aber ich kann nicht scheinen, um es herauszufinden, so dass jede Hilfe wäre genial.
Dank wie immer.
Angel-Liste der API-Dokumentation wenn es hilfreich ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen
last_page
- und eine get-Anforderung für jede Seite in der Reihe:range(2, num_pages + 1)
da die erste Seite ist 1 und 16 ist die Anzahl der Seiten insgesamt, so wird wollen, dass in die Produktpalette aufgenommen... (und möglicherweise verwenden möchtenrequests.get('http://...blah...?', params={'page': page})
zu vermeiden string interpolationVerbesserung auf @alecxe Antwort: wenn Sie ein Python-Generator und-Anforderungen HTTP-Sitzung können Sie verbessern die Leistung und Ressourcen-Nutzung, wenn Sie Abfragen, viele Seiten oder sehr vielen Seiten.