Heim > Artikel > Backend-Entwicklung > So fordern Sie Netzwerkressourcen mit Python an
Wir teilen seit langem Wissen über Linux-Systeme, daher denken einige Freunde möglicherweise fälschlicherweise, dass wir nur Dinge im Zusammenhang mit Linux-Operationen teilen. Tatsächlich ist dies nicht der Fall Unser täglicher Entwicklungsprozess. Was auch immer meiner Meinung nach zusammengefasst werden kann, ich kann es mit anderen teilen.
Vor kurzem schreibe ich ein Programm für den regelmäßigen Zugriff auf Netzwerkressourcen, bei dem Python für den Zugriff auf das Netzwerk verwendet wird. Daher werden wir diesen Punkt heute kurz zusammenfassen.
Um auf Ressourcen im Netzwerk zuzugreifen, verwenden einige Freunde möglicherweise urllib.request. Dieses Modul ist auch eine Python-Standardbibliothek. Wir verwenden jedoch Anfragen, die einen Wrapper von urllib.request darstellen und bequemer zu verwenden sind. Wenn Sie es zum ersten Mal verwenden, müssen Sie Folgendes installieren:
pip install --user requests
Nach erfolgreicher Installation können Sie es direkt verwenden. Sie müssen es über der Python-Datei eingeben:
import requestsimport requests
Zur Vereinfachung der Demonstration besuchen wir das Python-Projekt mit den höchsten Sternen auf Github. Die Adresse lautet:
https://www.php.cn/link/62d90d223cf3e2239113a4963b191d71
Um ein Gesamtverständnis zu erhalten, können Sie zunächst den Browser öffnen und den darin enthaltenen Inhalt im JSON-Format anzeigen.
Dann erstellen wir eine neue test-resp.py-Datei und geben den folgenden Code ein:
import requests url='https://www.php.cn/link/62d90d223cf3e2239113a4963b191d71'; get_resp=requests.get(url);
Die erste Zeile des obigen Codes leitet das Anforderungsmodul ein und die zweite Zeile speichert die Adresse, auf die zugegriffen werden soll in der URL-Variablen. Zeile 3 verwendet die get-Methode des Anforderungsmoduls, um auf die URL zuzugreifen, und speichert die Antwort in der Variablen get_resp. Die Antwort ist ein Objekt, das den Inhalt und Status der angeforderten Ressource enthält. Sie können den Status der Antwort mit dem Objekt status_code ausdrucken, wie unten gezeigt:
print(get_resp.status_code)
Das Ergebnis ist wie folgt:
$ python test-resp.py 200
Natürlich können Sie auch den Text der Antwort ausdrucken, also get_resp drucken. Text, aber dieser Text ist nicht formatiert und nicht leicht zu lesen:
Wir haben nur einen Teil des Ergebnisses im obigen Bild abgefangen, weil es zu lang ist ... Dieses Ergebnis ist schwieriger zu analysieren , aber es besteht überhaupt kein Grund zur Sorge, indem wir uns einfach den Inhalt ansehen. Das Antwortergebnis ist also auch ein JSON, und die Analysefunktion von Python für JSON ist sehr leistungsfähig Geben Sie den Schlüsselwert dieses JSON wie folgt heraus: Wie Sie sehen, können wir dieses Antwortergebnis vollständig als JSON-Objekt verarbeiten. Beispielsweise stellt der erste Schlüsselwert total_count im obigen Ergebnis die Gesamtzahl der Python-Warehouses dar. Wir können diesen Wert wie folgt ausdrucken:
print(get_resp.json().keys())
Die laufenden Ergebnisse lauten wie folgt:
$ python test-resp.py dict_keys(['total_count', 'incomplete_results', 'items'])
Wenn die Netzwerkressource gelesen wird, ist dies der Fall ein gewöhnliches HTML-Format. Sie können die Bibliothek eines Drittanbieters BeautifulSoup verwenden, die das HTML-Parsen perfekt lösen kann. Wir haben BeautifulSoup auch in früheren Artikeln vorgestellt. Sie können sich darauf beziehen: Verwenden der Beautiful Soup-Bibliothek von Python zum Analysieren von Webseiten. Zugriff, oder Sie müssen sich anmelden (mit einer Benutzersitzung), um darauf zuzugreifen. Dazu können Sie der Anforderung einen Anforderungsheader hinzufügen, den Browser im Anforderungsheader simulieren, Benutzersitzungsinformationen (Token) hinzufügen usw. Wie unten gezeigt:
response_dict=get_resp.json(); print("Total repositories:", response_dict['total_count'])
Im obigen Code ist User-Agent im Header-Objekt die simulierte Browserinformation und Authorization das Anforderungstoken. Sie können bei Bedarf auch andere Anfrage-Header-Informationen hinzufügen, wie unten gezeigt:
$ python test-resp.py Total repositories: 9128125
Sonstiges
headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36', 'Authorization':'41d15146-c3f3-4c0b-b48b-b5210151a9df' } get_resp=requests.get(url,headers=headers,params=None)
Die Verwendungsmethode ist genau die gleiche wie bei get request.
Das Obige ist der gesamte Inhalt, den wir dieses Mal geteilt haben. Gerne können wir ihn besprechen.
Das obige ist der detaillierte Inhalt vonSo fordern Sie Netzwerkressourcen mit Python an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!