suchen
HeimBackend-EntwicklungPython-TutorialDaten aus einer HTTP -API mit Python abrufen

Fetching Data from an HTTP API with Python

Python greift effizient auf die HTTP -API zu: fordert Bibliothek an und fordert Cache

an.

Dieser Artikel wird aus "praktischem Python" ausgewählt, und der Autor Stuart zeigt, wie man mit Python und mehreren Modulen von Drittanbietern leicht auf die HTTP-API zugreift.

In den meisten Fällen ist die Verarbeitung von Daten von Drittanbietern zu Zugriff auf die HTTP-API erforderlich, d. H. Das Senden von HTTP-Anfragen an Webseiten, die eher von Maschinen als manuell gelesen werden sollen. Die API-Daten befinden sich normalerweise in einem maschinenlesbaren Format, normalerweise in JSON oder XML. Lassen Sie uns mithilfe von Python sehen, wie Sie auf die HTTP -API zugreifen.

Die Grundprinzipien der Verwendung von HTTP -API sind einfach:

    Senden Sie eine HTTP -Anfrage an die URL der API, die einige Authentifizierungsinformationen (wie API -Schlüssel) enthalten kann, um zu beweisen, dass wir autorisiert sind.
  1. Daten abrufen.
  2. Verwenden Sie Daten, um nützliche Vorgänge abzuschließen.
Die Python-Standardbibliothek bietet genügend Funktionen, um all dies ohne zusätzliche Module auszuführen. Dies erleichtert jedoch unsere Arbeit, wenn wir mehrere Drittanbieter-Module verwenden, um den Prozess zu vereinfachen. Das erste ist das

-Modul. Dies ist eine HTTP-Bibliothek für Python, mit der HTTP-Daten bequemer werden als Pythons integriertes requests und können mit urllib.request installiert werden. python -m pip install requests

Um die Benutzerfreundlichkeit zu zeigen, werden wir Pixabays API (hier dokumentiert) verwenden. Pixabay ist eine Bildwebsite, auf der alle Bilder wiederverwendet werden können, was sie zu einer sehr bequemen Ressource macht. Wir werden uns auf Obstbilder konzentrieren. Bei der Manipulation der Datei werden wir später die gesammelten Fruchtbilder verwenden, aber jetzt möchten wir nur die Fruchtbilder finden.

Erstens werden wir schnell sehen, welche Bilder auf Pixabay verfügbar sind. Wir werden hundert Bilder schnappen, sie schnell stöbern und den gewünschten auswählen. Dazu benötigen wir einen Pixabay -API -Schlüssel, daher müssen wir ein Konto erstellen und dann den Schlüssel aus dem Suchbildabschnitt des API -Dokuments abrufen.

fordert Modul

an

Die grundlegenden Versionen der Verwendung des

-Moduls, um HTTP -Anforderungen an die API zu stellen, umfassen das Erstellen von HTTP -URLs, das Erstellen von Anforderungen und das Lesen von Antworten. Hier ist die Antwort im JSON -Format. Das requests -Modul macht jeden Schritt sehr einfach. Der API -Parameter ist ein Python -Wörterbuch, und die requests -Funktion macht einen Aufruf. Daher sieht ein einfacher Anruf so aus: get() requests .json Dies gibt ein Python -Objekt zurück, und wie in der API -Dokumentation vorgeschlagen, können wir seine verschiedenen Teile anzeigen:

Um hundert Ergebnisse zu erzielen, können wir einfach entscheiden, fünf Anrufe zu tätigen, von denen jedes 20 Ergebnisse erzielt, aber dies ist nicht robust genug. Ein besserer Ansatz besteht darin, die Anforderungsseite zu durchlaufen, bis Sie die gewünschten hundert Ergebnisse erzielen und dann anhalten. Dies verhindert Probleme, wenn Pixabay die Standardzahl der Ergebnisse ändert (z. B. bis 15). Es ermöglicht uns auch, die Situation zu bewältigen, in der die Suchbegriffe keine hundert Bilder haben. Wir verwenden also eine while -Schleife, die jedes Mal die Seitenzahl erhöhen. Wenn wir 100 Bilder erreicht haben oder es kein Bild zum Abrufen gibt, beenden wir die Schleife:

cache http requests

Es ist eine gute Idee, nicht mehrmals bei der HTTP -API dieselben Anfragen zu stellen. Viele APIs haben Verwendungsbeschränkungen, um Überbeanspruchung durch Anfragen zu vermeiden, und Anfragen nehmen Zeit und Mühe. Wir sollten versuchen, frühere Anfragen zu vermeiden. Glücklicherweise gibt es eine nützliche Möglichkeit, dies zu tun, wenn das Python requests -Modul verwendet wird: Installieren Sie python -m pip install requests-cache mit requests-cache. Dadurch werden die von uns getätigten HTTP -Anrufe nahtlos aufgezeichnet und die Ergebnisse speichern. Dann, später, wenn wir denselben Anruf erneut tätigen, erhalten wir das lokal gespeicherte Ergebnis, ohne wieder auf die API zugreifen zu müssen. Dies spart Zeit und Bandbreite. Um requests_cache zu verwenden, es zu importieren und ein CachedSession zu erstellen und dann session.get anstelle von requests.get zu verwenden, um die URL zu erhalten, erhalten wir die Vorteile des Caching ohne zusätzliche Anstrengung:

Ausgabe

erzeugen

Um die Abfrageergebnisse anzuzeigen, müssen wir das Bild irgendwo anzeigen. Eine bequeme Möglichkeit besteht darin, eine einfache HTML -Seite zu erstellen, um jedes Bild anzuzeigen. Pixabay bietet kleine Miniaturansichten für jedes Bild, das in der API -Antwort previewURL bezeichnet wird, sodass wir eine HTML -Seite erstellen können wollen und unterschreiben Sie den Fotografen. Daher könnte jedes Bild auf der Seite so aussehen:

Wir können es aus der Liste images mit Listenverständnis erstellen und dann "n".join() verwenden, um alle Ergebnisse in eine große Zeichenfolge zu verkettet:

Wenn wir dann eine sehr einfache HTML -Seite mit dieser Liste schreiben, können Sie sie einfach in einem Webbrowser öffnen. Zeigen Sie schnell alle Suchergebnisse an, die wir von der API erhalten Pixabay -Seite:

Fetching Data from an HTTP API with Python

Dieser Artikel ist aus praktischem Python ausgewählt und kann bei SitePoint Premium- und E-Book-Einzelhändlern gekauft werden.

(Folgende FAQs sind nach dem Originaltext umgeschrieben und optimiert)

Häufig gestellte Fragen zum Erhalten von Daten mit Pythons HTTP -API (FAQs)

  • Was ist der Unterschied zwischen http und https? http ist ein Hypertext -Transferprotokoll, und HTTPS ist ein sicheres Hypertext -Transferprotokoll. Der Hauptunterschied besteht darin, dass HTTPS SSL -Zertifikate verwendet, um eine sichere verschlüsselte Verbindung zwischen dem Server und dem Client herzustellen, während HTTP dies nicht tut. Dies macht HTTPS sicherer, wenn sensible Daten wie Kreditkarteninformationen oder Anmeldeinformationen übertragen werden.

  • Wie funktioniert HTTP in Python? Mehrere Bibliotheken können in Python verwendet werden, um HTTP -Anforderungen auszustellen. Die am häufigsten verwendeten ist requests. Mit dieser Bibliothek können Sie HTTP-Anforderungen und Prozessantworten senden, einschließlich Verarbeitung von Cookies, Formulardaten, mehrteiligen Dateien und mehr. Es ist ein leistungsstarkes Tool für die Interaktion mit Webdiensten und kann in einer Vielzahl von Anwendungen verwendet werden.

  • Was sind die üblichen HTTP -Methoden? Wie benutze ich sie in Python? Die häufigsten HTTP -Methoden sind Get, Post, Put, Löschen, Kopf, Optionen und Patch. In Python können Sie die requests Bibliothek verwenden, um diese Methoden zu verwenden. Um beispielsweise eine Get -Anfrage zu senden, können Sie requests.get(url) und um eine Postanforderung zu senden, können Sie requests.post(url, data) verwenden.

  • Wie gehe ich mit HTTP -Antworten in Python um? Wenn Sie mit der Bibliothek requests HTTP -Anforderungen in Python senden, erhalten Sie ein Antwortobjekt. Dieses Objekt enthält die Antwort des Servers auf Ihre Anfrage. Wenn sich die Antwort im JSON -Format befindet, können Sie response.text oder response.json() auf den Inhalt der Antwort zugreifen. Sie können auch response.status_code verwenden, um den Statuscode der Antwort zu überprüfen.

  • Wie verwendet ich HTTP -Header in Python? Sie können sie in Python verwenden, indem Sie HTTP -Header als Wörterbuch zum requests -Parameter der headers -Funktion übergeben. Zum Beispiel requests.get(url, headers={'User-Agent': 'my-app'}). Der Header kann verwendet werden, um zusätzliche Informationen über die Anfrage oder den Kunden bereitzustellen, z. B. Benutzeragenten, Inhaltstyp, Autorisierung usw.

  • Wie gehe ich mit Cookies in Python um? Cookies können in Python unter Verwendung des cookies -attributs des Antwortobjekts verarbeitet werden. Sie können auf die vom Server gesendeten Cookies mit response.cookies zugreifen und die Cookies an den Server senden, indem Sie sie als Wörterbuch an den Parameter requests der cookies -Funktion übergeben.

  • Wie sende ich Formulardaten mit der Postanforderung in Python? kann es mit einer Postanforderung in Python gesendet werden, indem die Formdaten als Wörterbuch an den Parameter requests.post der data -Funktion übergeben werden. Zum Beispiel requests.post(url, data={'key': 'value'}). Die requests Bibliothek codiert die Daten automatisch im richtigen Format.

  • Wie sende ich eine Datei mit der Postanforderung in Python? Dateien können mit post -Anfragen in Python gesendet werden, indem sie als Wörterbuch an den Parameter requests.post der files -Funktion übergeben werden. Das Wörterbuch sollte den Namen des Dateifelds als Schlüssel und das Tupel enthalten, das den Dateinamen und das Dateiobjekt als Werte enthält.

  • Wie kann man mit Fehlern und Ausnahmen der Bibliothek in Python umgehen? requests Die Bibliothek in Python wirft Ausnahmen für bestimmte Arten von Fehlern wie Netzwerkfehler oder Zeitüberschreitungen aus. Sie können den Versuch/außer Block verwenden, um diese Ausnahmen zu fangen und sie angemessen zu behandeln. Sie können auch den Statuscode der Antwort überprüfen, um HTTP -Fehler zu behandeln. requests

  • Wie kann man in Python eine asynchrone HTTP -Anfrage stellen? Sie können mit der Bibliothek asynchrone HTTP -Anforderungen in Python ausstellen. Mit dieser Bibliothek können Sie HTTP -Anfragen asynchron und Prozessantworten senden, wodurch die Leistung Ihrer Anwendung bei der Bearbeitung einer großen Anzahl von Anforderungen erheblich verbessern kann. aiohttp

Das obige ist der detaillierte Inhalt vonDaten aus einer HTTP -API mit Python abrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Pythons Ausführungsmodell: Kompiliert, interpretiert oder beides?Pythons Ausführungsmodell: Kompiliert, interpretiert oder beides?May 10, 2025 am 12:04 AM

Pythonisbothcompiledandinterpreted.WhenyourunaPythonscript,itisfirstcompiledintobytecode,whichisthenexecutedbythePythonVirtualMachine(PVM).Thishybridapproachallowsforplatform-independentcodebutcanbeslowerthannativemachinecodeexecution.

Ist Python Linie für Linie ausgeführt?Ist Python Linie für Linie ausgeführt?May 10, 2025 am 12:03 AM

Python ist nicht streng line-by-line-Ausführung, sondern wird basierend auf dem Interpreter-Mechanismus optimiert und bedingte Ausführung. Der Interpreter konvertiert den Code in Bytecode, der von der PVM ausgeführt wird, und kann konstante Ausdrücke vorkompilieren oder Schleifen optimieren. Das Verständnis dieser Mechanismen trägt dazu bei, den Code zu optimieren und die Effizienz zu verbessern.

Was sind die Alternativen zur Verkettung von zwei Listen in Python?Was sind die Alternativen zur Verkettung von zwei Listen in Python?May 09, 2025 am 12:16 AM

Es gibt viele Methoden, um zwei Listen in Python zu verbinden: 1. Verwenden Sie Operatoren, die in großen Listen einfach, aber ineffizient sind; 2. Verwenden Sie die Erweiterungsmethode, die effizient ist, die ursprüngliche Liste jedoch ändert. 3.. Verwenden Sie den operator =, der sowohl effizient als auch lesbar ist; 4. Verwenden Sie die Funktion iterertools.chain, die Speichereffizient ist, aber zusätzlichen Import erfordert. 5. Verwenden Sie List Parsing, die elegant ist, aber zu komplex sein kann. Die Auswahlmethode sollte auf dem Codekontext und den Anforderungen basieren.

Python: Effiziente Möglichkeiten, zwei Listen zusammenzuführenPython: Effiziente Möglichkeiten, zwei Listen zusammenzuführenMay 09, 2025 am 12:15 AM

Es gibt viele Möglichkeiten, Python -Listen zusammenzuführen: 1. Verwenden von Operatoren, die einfach, aber nicht für große Listen effizient sind; 2. Verwenden Sie die Erweiterungsmethode, die effizient ist, die ursprüngliche Liste jedoch ändert. 3. Verwenden Sie iTertools.chain, das für große Datensätze geeignet ist. 4. Verwenden Sie * Operator, fusionieren Sie kleine bis mittelgroße Listen in einer Codezeile. 5. Verwenden Sie Numpy.concatenate, das für große Datensätze und Szenarien mit hohen Leistungsanforderungen geeignet ist. 6. Verwenden Sie die Append -Methode, die für kleine Listen geeignet ist, aber ineffizient ist. Bei der Auswahl einer Methode müssen Sie die Listengröße und die Anwendungsszenarien berücksichtigen.

Kompiliert gegen interpretierte Sprachen: Vor- und NachteileKompiliert gegen interpretierte Sprachen: Vor- und NachteileMay 09, 2025 am 12:06 AM

CompiledLanguageOfferSpeedandSecurity, während interpretedLanguagesProvideaseofuseAnDportabilität.1) kompiledlanguageslikec areFasterandSecurebuthavelongerDevelopmentCyclesandplatformDependency.2) InterpretedLanguages ​​-pythonareaToReAndoreAndorePortab

Python: Für und während Schleifen der vollständigste LeitfadenPython: Für und während Schleifen der vollständigste LeitfadenMay 09, 2025 am 12:05 AM

In Python wird eine für die Schleife verwendet, um iterable Objekte zu durchqueren, und eine WHHE -Schleife wird verwendet, um Operationen wiederholt durchzuführen, wenn die Bedingung erfüllt ist. 1) Beispiel für Schleifen: Überqueren Sie die Liste und drucken Sie die Elemente. 2) Während des Schleifens Beispiel: Erraten Sie das Zahlenspiel, bis Sie es richtig erraten. Mastering -Zyklusprinzipien und Optimierungstechniken können die Code -Effizienz und -zuverlässigkeit verbessern.

Python verkettet listet in eine Zeichenfolge aufPython verkettet listet in eine Zeichenfolge aufMay 09, 2025 am 12:02 AM

Um eine Liste in eine Zeichenfolge zu verkettet, ist die Verwendung der join () -Methode in Python die beste Wahl. 1) Verwenden Sie die monjoy () -Methode, um die Listelemente in eine Zeichenfolge wie "" .Join (my_list) zu verkettet. 2) Für eine Liste, die Zahlen enthält, konvertieren Sie die Karte (STR, Zahlen) in eine Zeichenfolge, bevor Sie verkettet werden. 3) Sie können Generatorausdrücke für komplexe Formatierung verwenden, wie z. 4) Verwenden Sie bei der Verarbeitung von Mischdatentypen MAP (STR, MIXED_LIST), um sicherzustellen, dass alle Elemente in Zeichenfolgen konvertiert werden können. 5) Verwenden Sie für große Listen '' .Join (large_li

Pythons Hybridansatz: Zusammenstellung und Interpretation kombiniertPythons Hybridansatz: Zusammenstellung und Interpretation kombiniertMay 08, 2025 am 12:16 AM

Pythonusesahybridapproach, kombinierte CompilationTobyteCodeAnDinterpretation.1) codiscompiledtoplatform-unintenpendentBytecode.2) BytecodeIsinterpretedBythepythonvirtualMachine, EnhancingEfficiency und Portablabilität.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.