Vorwort
Lernen macht mich glücklich, Spiele machen mich traurig. Heute ist RushB ein weiterer Tag für nichts.
HXDM, lassen Sie uns gemeinsam die Methoden und die Verwendung der Anforderungsbibliothek lernen und in die Welt des Codes eintauchen. Woooo ~~
Inhaltsverzeichnis
1. Einführung in die Anforderungsbibliothek
Listen Sie zuerst die offizielle Website der Anforderungsbibliothek auf. Es ist hier: Anfragen Bibliothek Chinesische offizielle Website
fordert Bibliothekserklärung an Anfragen: HTTP für Menschen (herrschsüchtig)
Auf der offiziellen Website finden Sie detaillierte Nutzungsdokumente. Es gibt einige kleine Beispiele. Auf der offiziellen Website erfahren Sie, ob Sie den snobistischen Blog von Luo Li nicht lesen möchten.
Die Anforderungsbibliothek basiert auf dem urllib- Framework.
Zweitens die allgemeinen Methoden und Anweisungen der Anforderungsbibliothek
Methode | Beschreibung |
---|---|
request.get () | Holen Sie sich eine bestimmte Seite |
request.post () | HTTP-POST-Anfrage senden |
request.put () | Senden Sie eine HTTP-PUT-Anfrage |
request.delete () | Senden Sie eine HTTP-Löschanforderung |
request.head () | Informationen zu HTTP HEAD (Header) abrufen |
Anfragen.Optionen () | Senden Sie die HTTP OPTINS-Anfrage |
Drittens die Eigenschaften und die Beschreibung des Antwortobjekts
Bevor wir die Eigenschaften des Antwortobjekts verstehen, schauen wir uns an, was ein Antwortobjekt ist. Wenn wir beispielsweise einen Browser verwenden, suchen Sie nach CSDN und drücken Sie F12, um die Entwicklertools zu öffnen. Im Netzwerk sehen wir die beiden Überschriften im roten Kreis im Bild unten.
Das Anforderungsobjekt ist die vom Browser an den Server gesendete Anforderung, und das Antwortobjekt ist die Antwort des Servers auf die Browseranforderung. Werfen wir einen Blick auf den folgenden Code.
import requests
r = requests.get('https://www.baidu.com')
Wir können es uns also 'www.baidu.com'
als eine Anfrage vorstellen, und die Methode requests.get()
gibt eine Antwort zurück, sodass wir das Antwortobjekt erhalten r
. r
Versuchen wir es direkt zu drucken .
import requests
r = requests.get('https://www.baidu.com')
print(r)
Ausführungsergebnis:
Sie können sehen, dass das Ergebnis nicht der HTML-Code der Baidu-Webseite ist, den wir uns vorgestellt haben, sondern der Antwortstatuscode. Dies liegt daran, dass es sich r
hier um ein Antwortobjekt handelt und wir auf dessen Eigenschaften zugreifen müssen, um die gewünschten Informationen zu erhalten.
Eigenschaften des Antwortobjekts:
Attribute | Beschreibung |
---|---|
response.text | Inhalt der HTTP-Antwortseite |
response.encoding | Textcodierungsformat |
response.apparent_encoding | Aus der Inhaltsanalyse abgeleitete Methode zur Codierung des Antwortinhalts |
response.status_code | HTTP-Antwortstatus |
response.content | Binäres Format des Inhalts der HTTP-Antwortseite |
Schauen wir uns den folgenden Code an
import requests
r = requests.get('https://www.baidu.com')
r.encoding = 'utf-8'
print(r.text)
Ausführungsergebnis:
Wir haben den HTML-Code der Baidu-Homepage erhalten
Viertens die Verwendung allgemeiner Methoden in der Anforderungsbibliothek
1. Die Verwendung von request.get ()
Die get-Methode ist die am häufigsten verwendete Methode in der Anforderungsbibliothek. Sie können die gewünschte HTTP-Antwort erhalten, indem Sie die Parameter ändern.
Zum Beispiel besuchen wir direkt die Douban-Website, um zu sehen, welcher
Code sein wird :
import requests
r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'
print(r.text)
Ausführungsergebnis:
Hey, was ist los, es gibt nichts, der Code ist nicht falsch! Warum gibt es keinen Text?
Drucken wir den HTTP-Statusantwortcode.
Code:
import requests
r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'
print(r.status_code)
Ausführungsergebnis:
Sie können sehen, dass der HTTP-Statusantwortcode lautet 418
. Was bedeutet dieser Statuscode? 418
: Wenn der Kunde eine Anfrage zum Zubereiten von Kaffee an eine Teekanne sendet, wird ein Fehlerstatuscode zurückgegeben, der bedeutet: Ich bin eine Teekanne, dh "Ich bin eine Teekanne". Dieser HTTP-Statuscode wird auf einigen Websites als Osterei verwendet, auf einigen auchReptilienwarnung. Es bedeutet, dass wir gewarnt wurden und Douban uns sagte: "Du schlechtes Reptil, wenn du die Regeln nicht befolgst, werden die Leute es dir nicht zeigen! Humph╭ (╯ ^ ╰) ╮!". Wir müssen also auf normale Weise auf Douban zugreifen. Glücklicherweise requests.get()
können wir mit dieser Methode einige Parameter hinzufügen , um den Browserzugriff zu simulieren. Jetzt können wir sagen: "Hey, kann nicht weglaufen."
Wie kann man den Browserzugriff imitieren?
Öffnen Sie eine Webseite, drücken Sie F12, um den Entwicklermodus zu öffnen. Klicken
Sie im Netzwerk auf ein Element unter dem Namen. Sie sehen die folgende Situation
. Der große rote Kreis unter Anforderungsheader enthält User-Agent
die Informationen, die dem Serverbrowser mitgeteilt werden. Wie können wir in den Code schreiben:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
} # 模拟浏览器访问
r = requests.get('https://www.douban.com', headers=headers)
r.encoding = 'utf-8'
print(r.text)
print('状态码:')
print(r.status_code)
Ausführungsergebnis:
Sie können sehen, dass wir den HTML-Code von Douban sowie den Statuscode erhalten haben 200
. requests.get()
Die Methode verfügt über viele nützliche Parameter, die Sie beispielsweise verwenden können
payload = {
'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
Anstatt von
r = requests.get("http://httpbin.org/get?key1=value1&key2=value2")
Sie können auf die offizielle Website der Anforderungsbibliothek gehen, um diese selbst zu erkunden und mehr Code zu schreiben, um sie zu verbessern.
2. Verwendung der Methode request.post ()
Die Anforderungsbibliothek ermöglicht es uns auch, HTTP-Antworten per Post anzufordern, da einige Webseiten keine URL
nachfolgenden Ergänzungen akzeptieren Vaule
, sondern möglicherweise nur Formulare. Wir können schreiben:
payload = {
'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
Auf diese Weise können wir den Inhalt des Formulars selbst anpassen. emmm Was eine Form ist, müssen Sie lernen.
3. Verwendung von Put-, Lösch- und anderen Methoden
Die Verwendung anderer Methoden ähnelt natürlich den oben genannten. Nachdem wir das Wissen über HTTP-Anforderungen kennengelernt haben, wissen wir natürlich, welche Methode wir zum Crawlen von Webressourcen verwenden sollten.
Anwendungsbeispiele:
r = requests.put('http://httpbin.org/put', data = {
'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
4. Website üben
http://httpbin.org ist eine Website, die Anfragen und Antworten akzeptiert. Sie können normalerweise darauf üben.
Komm schon!