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.
- Daten abrufen.
- Verwenden Sie Daten, um nützliche Vorg?nge abzuschlie?en.
-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
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:
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 Sierequests.get(url)
und um eine Postanforderung zu senden, k?nnen Sierequests.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 Sieresponse.text
oderresponse.json()
auf den Inhalt der Antwort zugreifen. Sie k?nnen auchresponse.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 derheaders
-Funktion übergeben. Zum Beispielrequests.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 mitresponse.cookies
zugreifen und die Cookies an den Server senden, indem Sie sie als W?rterbuch an den Parameterrequests
dercookies
-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
derdata
-Funktion übergeben werden. Zum Beispielrequests.post(url, data={'key': 'value'})
. Dierequests
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
derfiles
-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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Pythons untestestes und PyTest sind zwei weit verbreitete Test -Frameworks, die das Schreiben, Organisieren und Ausführen automatisierter Tests vereinfachen. 1. Beide unterstützen die automatische Entdeckung von Testf?llen und liefern eine klare Teststruktur: Unittest definiert Tests durch Erben der Testpase -Klasse und beginnt mit Test \ _; PyTest ist pr?gnanter, ben?tigen nur eine Funktion, die mit Test \ _ beginnt. 2. Sie alle haben eine integrierte Behauptungsunterstützung: Unittest bietet AssertEqual, AssertRue und andere Methoden, w?hrend PyTest eine erweiterte Anweisung für die Assert verwendet, um die Fehlerdetails automatisch anzuzeigen. 3. Alle haben Mechanismen für die Vorbereitung und Reinigung von Tests: un

PythonisidealfordataanalysisduetoNumPyandPandas.1)NumPyexcelsatnumericalcomputationswithfast,multi-dimensionalarraysandvectorizedoperationslikenp.sqrt().2)PandashandlesstructureddatawithSeriesandDataFrames,supportingtaskslikeloading,cleaning,filterin

Die dynamische Programmierung (DP) optimiert den L?sungsprozess, indem komplexe Probleme in einfachere Unterprobleme zerlegt und deren Ergebnisse gespeichert werden, um wiederholte Berechnungen zu vermeiden. Es gibt zwei Hauptmethoden: 1. Top-Down (Memorisierung): Das Problem rekursiv zerlegen und Cache verwenden, um Zwischenergebnisse zu speichern; 2. Bottom-up (Tabelle): Iterativ L?sungen aus der grundlegenden Situation erstellen. Geeignet für Szenarien, in denen maximale/minimale Werte, optimale L?sungen oder überlappende Unterprobleme erforderlich sind, wie Fibonacci -Sequenzen, Rucksackprobleme usw. In Python k?nnen sie durch Dekoratoren oder Arrays implementiert werden, und die Aufmerksamkeit sollte für die Identifizierung rekursiver Beziehungen gezahlt werden, und die Optimierung der Komplexit?t des Raums.

Um einen benutzerdefinierten Iterator zu implementieren, müssen Sie die Methoden __iter__ und __next__ in der Klasse definieren. ① Die __iter__ -Methode gibt das Iteratorobjekt selbst, normalerweise selbst, um mit iterativen Umgebungen wie für Schleifen kompatibel zu sein. ② Die __Next__ -Methode steuert den Wert jeder Iteration, gibt das n?chste Element in der Sequenz zurück, und wenn es keine weiteren Elemente mehr gibt, sollte die Ausnahme der Stopperation geworfen werden. ③ Der Status muss korrekt nachverfolgt werden und die Beendigungsbedingungen müssen festgelegt werden, um unendliche Schleifen zu vermeiden. ④ Komplexe Logik wie Filterung von Dateizeilen und achten Sie auf die Reinigung der Ressourcen und die Speicherverwaltung; ⑤ Für eine einfache Logik k?nnen Sie stattdessen die Funktionsertrags für Generator verwenden, müssen jedoch eine geeignete Methode basierend auf dem spezifischen Szenario ausw?hlen.

Zukünftige Trends in Python umfassen Leistungsoptimierung, st?rkere Typ -Eingabeaufforderungen, der Aufstieg alternativer Laufzeiten und das fortgesetzte Wachstum des KI/ML -Feldes. Erstens optimiert CPython weiterhin und verbessert die Leistung durch schnellere Startzeit, Funktionsaufrufoptimierung und vorgeschlagene Ganzzahloperationen. Zweitens sind Typ -Eingabeaufforderungen tief in Sprachen und Toolchains integriert, um die Sicherheit und Entwicklung von Code zu verbessern. Drittens bieten alternative Laufzeiten wie Pyscript und Nuitka neue Funktionen und Leistungsvorteile; Schlie?lich erweitern die Bereiche von KI und Data Science weiter und aufstrebende Bibliotheken f?rdern eine effizientere Entwicklung und Integration. Diese Trends zeigen, dass Python st?ndig an technologische Ver?nderungen anpasst und seine führende Position aufrechterh?lt.

Das Python-Socket-Modul ist die Grundlage für die Netzwerkprogrammierung und bietet Niveau-Netzwerkkommunikationsfunktionen, die für das Erstellen von Client- und Serveranwendungen geeignet sind. Um einen grundlegenden TCP -Server einzurichten, müssen Sie Socket. Um einen TCP -Client zu erstellen, müssen Sie ein Socket -Objekt erstellen und .Connect () anrufen, um eine Verbindung zum Server herzustellen, und dann .Sendall () zum Senden von Daten und .recv () zum Empfangen von Antworten verwenden. Um mehrere Clients zu handhaben, k?nnen Sie 1. Threads verwenden: Starten Sie jedes Mal einen neuen Thread, wenn Sie eine Verbindung herstellen. 2. Asynchrone E/O: Zum Beispiel kann die Asyncio-Bibliothek eine nicht blockierende Kommunikation erreichen. Dinge zu beachten

Der Polymorphismus ist ein Kernkonzept in der objektorientierten Programmierung von Python-Objekte und bezieht sich auf "eine Schnittstelle, mehrere Implementierungen" und erm?glicht eine einheitliche Verarbeitung verschiedener Arten von Objekten. 1. Polymorphismus wird durch Umschreiben durch Methode implementiert. Unterklassen k?nnen übergeordnete Klassenmethoden neu definieren. Zum Beispiel hat die Spoke () -Methode der Tierklasse unterschiedliche Implementierungen in Hunde- und Katzenunterklassen. 2. Die praktischen Verwendungen des Polymorphismus umfassen die Vereinfachung der Codestruktur und die Verbesserung der Skalierbarkeit, z. 3. Die Python -Implementierungspolymorphismus muss erfüllen: Die übergeordnete Klasse definiert eine Methode, und die untergeordnete Klasse überschreibt die Methode, erfordert jedoch keine Vererbung derselben übergeordneten Klasse. Solange das Objekt dieselbe Methode implementiert, wird dies als "Ententyp" bezeichnet. 4. Zu beachten ist die Wartung

Die Kernantwort auf die Python -Liste Slicing besteht darin, die Syntax [Start: Ende: Stufe] zu beherrschen und ihr Verhalten zu verstehen. 1. Das grundlegende Format der Listenschnitte ist die Liste [Start: Ende: Schritt], wobei der Start der Startindex (enthalten) ist, das Ende ist der Endindex (nicht enthalten) und Schritt ist die Schrittgr??e; 2. Start standardm??ig starten mit 0, lasse Ende standardm??ig bis zum Ende aus, standardm??ig standardm??ig 1 aus. 3.. Verwenden Sie My_List [: n], um die ersten N-Elemente zu erhalten, und verwenden Sie My_List [-n:], um die letzten N-Elemente zu erhalten. 4. Verwenden Sie den Schritt, um Elemente wie my_list [:: 2] zu überspringen, um gleiche Ziffern zu erhalten, und negative Schrittwerte k?nnen die Liste umkehren. 5. H?ufige Missverst?ndnisse umfassen den Endindex nicht
