Web -Scraping mit Python

Web -Scraping mit Python
Web Scraping ist eine automatisierte Möglichkeit, Informationen von Internet -Websites in sehr großer Menge zu extrahieren und zu verarbeiten. Daten auf den Internet -Websites sind nicht strukturiert, die durch Web -Scraping gesammelt und strukturiert werden können. Suchmaschinen wie Google, Bing und Yahoo haben Bots, die Daten von Internet -Websites kratzen und sie auf ihren Suchseiten indizieren. Daten können auch mit APIs extrahiert werden, was wahrscheinlich eine der besten Möglichkeiten ist, Daten aus dem Web zu extrahieren. Berühmte Websites wie Facebook, Google und Amazon bieten Benutzern gut strukturierte APIs, um mit Daten zu interagieren, aber Sie werden diese APIs nicht überall sehen.

Wenn Sie beispielsweise regelmäßige Updates für Ihre bevorzugten Produkte für Rabattangebote erhalten möchten oder den Prozess des Herunterladens von Episoden Ihrer bevorzugten Staffel von Staffel nacheinander automatisieren möchten, und die Website hat keine API dafür, dann die einzige Wahl Sie werden mit dem Web -Scraping übrig geblieben.Auf einigen Websites kann das Web -Scraping illegal sein, je nachdem, ob eine Website dies zulässt oder nicht. Websites verwenden „Roboter.TXT ”-Datei, um URLs explizit zu definieren, die nicht verschrottet werden dürfen. Sie können überprüfen, ob die Website dies zulässt oder nicht, indem Sie „Roboter angeben.txt ”mit dem Domain -Namen der Website. Zum Beispiel https: // www.Google.com/Roboter.txt

In diesem Artikel werden wir Python zum Scraping verwenden, weil es sehr einfach zu richten und zu verwenden ist. Es verfügt über viele integrierte und Drittbibliothekarien, die zum Abkratzen und Organisieren von Daten verwendet werden können. Wir werden zwei Python -Bibliotheken „Urllib“ verwenden, um die Webseite und „BeautifulSoup“ zu holen, um die Webseite zu analysieren, um Programmiervorgänge anzuwenden.

Wie Web -Scraping funktioniert?

Wir senden eine Anfrage an die Webseite, von wo aus Sie die Daten kratzen möchten. Die Website antwortet auf die Anfrage mit HTML -Inhalten der Seite. Dann können wir diese Webseite zur weiteren Verarbeitung auf BeautifulSoup analysieren. Um die Webseite zu holen, verwenden wir die "Urllib" -Bibliothek in Python.

Urllib lädt den Webseiteninhalt in HTML herunter. Wir können String -Operationen nicht auf diese HTML -Webseite für die Extraktion von Inhalten und weitere Verarbeitung anwenden. Wir werden eine Python -Bibliothek „BeautifulSoup“ verwenden, die den Inhalt analysiert und die interessanten Daten extrahiert.

Abkratzen von Artikeln von LinuxHint.com

Jetzt, da wir eine Vorstellung davon haben, wie Web -Scraping funktioniert, lassen Sie uns etwas Übung machen. Wir werden versuchen, Artikel und Links von LinuxHint zu kratzen.com. Öffnen Sie also https: // linuxhint.com/ in Ihrem Browser.

Drücken Sie nun CRTL+U, um den HTML -Quellcode der Webseite anzuzeigen.

Kopieren Sie den Quellcode und wechseln Sie zu https: // htmlFormatter.com/ um den Code zu tun. Nachdem Sie den Code geschrieben haben, ist es einfach, den Code zu inspizieren und interessante Informationen zu finden.

Kopieren Sie jetzt erneut den formatierten Code und fügen Sie ihn in Ihren bevorzugten Texteditor wie Atom, Sublime Text usw. ein. Jetzt werden wir die interessanten Informationen mit Python kratzen. Geben Sie Folgendes ein

// Die schöne Suppenbibliothek installieren, urllib kommt
in Python vorinstalliert
Ubuntu@Ubuntu: ~ $ sudo pip3 install bs4
Ubuntu@Ubuntu: ~ $ python3
Python 3.7.3 (Standard, 7. Oktober 2019, 12:56:13)
[GCC 8.3.0] unter Linux

Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen ein.

// UrlliB importieren
>>> UrlliB importieren.Anfrage
// BeautifulSoup importieren
>>> von BS4 Import BeautifulSoup
// Geben Sie die URL ein, die Sie holen möchten
>>> my_url = 'https: // linuxhint.com/'
// fordere die URL -Webseite mit dem Befehl urlopen an
>>> client = urllib.Anfrage.urlopen (my_url)
// Speichern Sie die HTML -Webseite in der Variablen "html_page" in der "html_page"
>>> html_page = client.lesen()
// Schließen Sie die URL -Verbindung, nachdem Sie die Webseite abgerufen haben
>>> Kunde.schließen()
// analysieren Sie die HTML -Webseite auf BeautifulSoup zum Scraping
>>> page_soup = BeautifulSoup (html_page, "html.Parser ")

Schauen wir uns nun den HTML -Quellcode an, den wir gerade kopiert und eingefügt haben, um Dinge von unserem Interesse zu finden.

Sie können sehen, dass der erste Artikel unter LinuxHint aufgeführt ist.COM wird als „Beispiele für Bash -Operatoren“ bezeichnet. Finden Sie dies im Quellcode. Es ist zwischen Header -Tags eingeschlossen und sein Code ist



class = "Category-1561"> Bash-Programmierung


Titel = "74 Bash -Operatoren Beispiele"> 74 Bash -Operatoren
Beispiele


Der gleiche Code wiederholt sich immer und immer wieder mit der Änderung von Just -Artikel -Titeln und Links. Der nächste Artikel enthält den folgenden HTML -Code



class = "category-1343"> ubuntu
Lack


title = "Wie man Lackcache auf Ubuntu 18 einrichten.04 ">
So richten Sie Lackcache auf Ubuntu 18 ein.04


Sie können sehen, dass alle Artikel, einschließlich dieser beiden, darin eingeschlossen sind “

"Tag und verwenden Sie dieselbe Klasse" Einstiegstitle ". Wir können die „Findall“ -Funktion in der schönen Suppenbibliothek verwenden, um alle zu finden und aufzulisten. “

"Mit der Klasse" Einstiegstitel ". Geben Sie Folgendes in Ihre Python -Konsole ein

// Dieser Befehl findet alle “

”Tagelemente mit der genannten Klasse
"Einstiegstitel". Die Ausgabe wird in einem Array gespeichert.
>>> Artikel = page_soup.Findall ("H2" ,
"Klasse": "Eintragungstitel")
// Die Anzahl der Artikel auf der Titelseite von LinuxHint gefunden.com
>>> len (Artikel)
102
// zuerst extrahiert "

”Tagelement, das den Artikelnamen und der Link enthält
>>> Artikel [0]


title = "74 Bash -Operatoren Beispiele">
74 Beispiele für Bash -Operatoren


// Sekunde extrahiert "

”Tagelement, das den Artikelnamen und der Link enthält
>>> Artikel [1]


title = "Wie man Lackcache auf Ubuntu 18 einrichten.04 ">
So richten Sie Lackcache auf Ubuntu 18 ein.04


// mit der Textfunktion nur Text in HTML -Tags anzeigen
>>> Artikel [1].Text
'Wie man Lackcache auf Ubuntu 18 einrichten.04 '

Jetzt, da wir eine Liste aller 102 HTML haben “

Tagelemente, die Artikellink und Artikeltitel enthält. Wir können beide Artikellinks und Titel extrahieren. Um Links aus "” -Tags zu extrahieren, können wir den folgenden Code verwenden

// Der folgende Code extrahiert den Link vom ersten zuerst

Tagelement
>>> Für Link in Artikeln [0].find_all ('a', href = true):
… Print (link ['href'])

https: // linuxHint.com/bash_operator_examples/

Jetzt können wir eine für die Schleife schreiben, die durch alle Ierates iteriert “

"Tagelement in" Artikeln "-Liste und extrahieren Sie den Artikellink und den Titel" Artikel ".

>>> für i im Bereich (0,10):
… Drucken (Artikel [i].Text)
… Für Link in Artikeln [i].find_all ('a', href = true):
… Print (link ['href']+"\ n")

74 Beispiele für Bash -Operatoren
https: // linuxHint.com/bash_operator_examples/
So richten Sie Lackcache auf Ubuntu 18 ein.04
https: // linuxHint.com/varnish_cache_ubuntu_1804/
Pinetime: Eine Linux -freundliche Smartwatch
https: // linuxHint.com/pinetime_linux_smartwatch/
10 Billige billige Linux -Laptops zum Kaufen mit kleinem Budget
https: // linuxHint.com/best_cheap_linux_laptops/
HD Remastered Games for Linux, bei denen es nie eine Linux -Veröffentlichung hatte…
https: // linuxHint.com/hd_remastered_games_linux/
60 fps Bildschirmaufzeichnungs -Apps für Linux
https: // linuxHint.com/60_fps_screen_recording_apps_linux/
74 Beispiele für Bash -Operatoren
https: // linuxHint.com/bash_operator_examples/
… Schnipsel…

In ähnlicher Weise speichern Sie diese Ergebnisse in einer JSON- oder CSV -Datei.

Abschluss

Ihre täglichen Aufgaben sind nicht nur Dateiverwaltung oder Systembefehlsausführung nicht. Sie können auch Web -verwandte Aufgaben wie Datei -Download -Automatisierung oder Datenextraktion automatisieren, indem Sie das Web in Python abkratzen. Dieser Artikel war nur auf einfache Datenextraktion beschränkt, aber Sie können eine große Aufgabenautomatisierung mit „Urllib“ und „BeautifulSoup“ durchführen.