Erste Schritte mit Python Crawler (zwei) - gängige Methoden und Verwendung der Anforderungsbibliothek (Anforderungsbibliothek Chinesische offizielle Website)

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 ~~

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.
Fügen Sie hier eine Bildbeschreibung ein
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. rVersuchen wir es direkt zu drucken .

import requests

r = requests.get('https://www.baidu.com')
print(r)

Ausführungsergebnis:
Fügen Sie hier eine Bildbeschreibung ein
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 rhier 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:
Fügen Sie hier eine Bildbeschreibung ein
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:
Fügen Sie hier eine Bildbeschreibung ein
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:
Fügen Sie hier eine Bildbeschreibung ein
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
Fügen Sie hier eine Bildbeschreibung ein
. Der große rote Kreis unter Anforderungsheader enthält User-Agentdie 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:
Fügen Sie hier eine Bildbeschreibung ein
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 URLnachfolgenden 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.
Fügen Sie hier eine Bildbeschreibung ein
Komm schon!
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/Bob_ganxin/article/details/108740320
Empfohlen
Rangfolge