Heim >Backend-Entwicklung >Python-Tutorial >Detailliertes Beispiel dafür, wie Python3 das Anforderungsmodul zum Crawlen von Seiteninhalten verwendet
Dieser Artikel stellt hauptsächlich die tatsächliche Verwendung von Python3 zum Crawlen von Seiteninhalten mithilfe des Anforderungsmoduls vor. Interessierte können mehr erfahren
1 >
Mein persönliches Desktop-System verwendet Linuxmint standardmäßig nicht, da Pip später zur Installation des Anforderungsmoduls verwendet wird.$ sudo apt install python-pipInstallation erfolgreich, PIP-Version prüfen:
$ pip -V
2. Anfragen installieren Modul
Hier habe ich es über pip installiert:$ pip install requestsImportanforderungen ausführen, falls vorhanden Wenn keine Fehler vorliegen, bedeutet dies, dass die Installation erfolgreich war! Überprüfen Sie, ob die Installation erfolgreich ist
3. Installieren Sie beautifulsoup4
Beautiful Soup ist ein Tool, das das kann kann aus der HTML- oder XML-Python-Bibliothek heruntergeladen werden, um Daten aus Dateien zu extrahieren. Es ermöglicht die übliche Dokumentennavigation und Möglichkeiten zum Suchen und Ändern von Dokumenten über Ihren bevorzugten Konverter. Beautiful Soup erspart Ihnen Stunden oder sogar Tage Arbeit.$ sudo apt-get install python3-bs4Hinweis: Ich verwende hier die Python3-Installationsmethode. Wenn Sie Python2 verwenden, können Sie es mit dem folgenden Befehl installieren.
$ sudo pip install beautifulsoup4
4.Eine kurze Analyse des Anfragemoduls
1) Senden Sie eine Anfrage Importieren Sie zunächst natürlich das Modul „Anfragen“:>>> import requestsDann erhalten Sie die gecrawlte Ziel-Webseite. Hier nehme ich Folgendes als Beispiel:
>>> r = requests.get('http://www.jb51.net/article/124421.htm')Hier wird ein Antwortobjekt namens r zurückgegeben. Wir können alle gewünschten Informationen von diesem Objekt erhalten. Get ist hier die Antwortmethode von http, Sie können sie also analog auch durch put, delete, post und head ersetzen. 2) URL-Parameter übergeben Manchmal möchten wir Daten für die Abfragezeichenfolge der URL übergeben. Wenn Sie die URL manuell erstellen, werden die Daten als Schlüssel/Wert-Paare gefolgt von einem Fragezeichen in die URL eingefügt. Beispiel: cnblogs.com/get?key=val. Mit Anfragen können Sie das Schlüsselwortargument params verwenden, um diese Parameter als Wörterbuch mit Zeichenfolgen bereitzustellen. Wenn wir beispielsweise bei Google nach dem Schlüsselwort „Python-Crawler“ suchen, können Parameter wie „newwindow“ (neues Fenster wird geöffnet), „q“ und „oq“ (Suchschlüsselwörter) manuell in die URL eingefügt werden, die Sie dann verwenden können der folgende Code:
>>> payload = {'newwindow': '1', 'q': 'python爬虫', 'oq': 'python爬虫'} >>> r = requests.get("https://www.google.com/search", params=payload)3) Antwortinhalt Rufen Sie den Seitenantwortinhalt über r.text oder r.content ab.
>>> import requests >>> r = requests.get('https://github.com/timeline.json') >>> r.textAnfragen dekodieren Inhalte automatisch vom Server. Die meisten Unicode-Zeichensätze können nahtlos dekodiert werden. Hier ist eine kleine Ergänzung zum Unterschied zwischen r.text und r.content: resp.text gibt Unicode-Daten zurück. resp.content gibt Byte-Daten zurück Binärdaten; Wenn Sie also Text erhalten möchten, können Sie r.text übergeben, wenn Sie Bilder oder Dateien erhalten möchten, können Sie r.content übergeben. 4) Holen Sie sich die Webseitenkodierung
>>> r = requests.get('http://www.cnblogs.com/') >>> r.encoding 'utf-8'5) Holen Sie sich den Antwortstatuscode Wir können den Antwortstatus erkennen Code:
>>> r = requests.get('http://www.cnblogs.com/') >>> r.status_code 200
5. Falldemonstration
Das Unternehmen hat kürzlich ein OA-System eingeführt, hier verwende ich das Offizielle Dokumentationsseite Nehmen Sie dies als Beispiel und erfassen Sie nur nützliche Informationen wie Artikeltitel und Inhalt auf der Seite. DemoumgebungBetriebssystem: LinuxmintPython-Version: Python 3.5.2Verwendung von Modulen: Anfragen, beautifulsoup4Code Wie folgt:#!/usr/bin/env python # -*- coding: utf-8 -*- _author_ = 'GavinHsueh' import requests import bs4 #要抓取的目标页码地址 url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html' #抓取页码内容,返回响应对象 response = requests.get(url) #查看响应状态码 status_code = response.status_code #使用BeautifulSoup解析代码,并锁定页码指定标签内容 content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml") element = content.find_all(id='book') print(status_code) print(element)Das Programm wird ausgeführt und gibt das Crawling-Ergebnis zurück: Der Crawl ist erfolgreich
Über das Problem verstümmelter Crawling-Ergebnisse
Tatsächlich habe ich zunächst direkt Python2 verwendet, das standardmäßig mit dem System geliefert wird, aber ich hatte lange Zeit damit zu kämpfen Das Problem der verstümmelten Kodierung des zurückgegebenen Inhalts hat verschiedene Lösungen gegoogelt, aber alle waren wirkungslos. Nachdem ich von Python2 „verrückt“ gemacht wurde, hatte ich keine andere Wahl, als Python3 ehrlich zu verwenden. Bezüglich des Problems verstümmelter Inhalte in gecrawlten Seiten in Python2 sind Senioren herzlich eingeladen, ihre Erfahrungen zu teilen, um zukünftigen Generationen wie mir zu helfen, Umwege zu vermeiden.Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel dafür, wie Python3 das Anforderungsmodul zum Crawlen von Seiteninhalten verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!