Web-Scraping

Web-Scraping mit Python

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

Wenn Sie zum Beispiel regelmäßig Updates zu Ihren Lieblingsprodukten für Rabattangebote erhalten möchten oder den Vorgang des Herunterladens von Episoden Ihrer Lieblingssaison nacheinander automatisieren möchten und die Website keine API dafür hat, dann ist dies die einzige Wahl Was bleibt, ist Web-Scraping.Web-Scraping kann auf einigen Websites illegal sein, je nachdem, ob eine Website dies zulässt oder nicht. Websites verwenden „Roboter“.txt“-Datei, um explizit URLs zu definieren, die nicht verschrottet werden dürfen. Sie können überprüfen, ob die Website dies zulässt oder nicht, indem Sie "Roboter" anhängen.txt“ mit dem Domainnamen der Website. Zum Beispiel https://www.Google.com/roboter.TXT

In diesem Artikel verwenden wir Python zum Scrapen, da es sehr einfach einzurichten und zu verwenden ist. Es verfügt über viele integrierte Bibliotheken und Bibliotheken von Drittanbietern, die zum Scrapieren und Organisieren von Daten verwendet werden können. Wir verwenden zwei Python-Bibliotheken „urllib“, um die Webseite abzurufen, und „BeautifulSoup“, um die Webseite zu analysieren, um Programmieroperationen anzuwenden.

So funktioniert Web-Scraping?

Wir senden eine Anfrage an die Webseite, von der aus Sie die Daten abkratzen möchten. Die Website antwortet auf die Anfrage mit dem HTML-Inhalt der Seite. Dann können wir diese Webseite zur weiteren Verarbeitung an BeautifulSoup parsen. Um die Webseite abzurufen, verwenden wir die Bibliothek „urllib“ in Python.

Urllib lädt den Webseiteninhalt in HTML herunter. Wir können keine String-Operationen auf diese HTML-Webseite anwenden, um Inhalte zu extrahieren und weiterzuverarbeiten. Wir verwenden eine Python-Bibliothek „BeautifulSoup“, die den Inhalt analysiert und die interessanten Daten extrahiert.

Löschen von Artikeln aus Linuxhint.com

Jetzt, da wir eine Vorstellung davon haben, wie Web-Scraping funktioniert, üben wir etwas. Wir werden versuchen, Artikeltitel und Links aus Linuxhint herauszukratzen.com. Also öffne https://linuxhint.com/ in Ihrem Browser.

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

Kopieren Sie den Quellcode und gehen Sie zu https://htmlformatter.com/ um den Code zu verschönern. Nach dem Verschönern des Codes ist es einfach, den Code zu inspizieren und interessante Informationen zu finden.

Kopieren Sie nun den formatierten Code erneut 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

// 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“ ein, um weitere Informationen zu erhalten.

//URL importieren
>>> URL importieren.Anfrage
//SchöneSuppe importieren
>>> aus bs4 importieren BeautifulSoup
//Geben Sie die URL ein, die Sie abrufen möchten
>>> my_url = 'https://linuxhint.com/'
//Anfordern der URL-Webseite mit dem Befehl urlopen
>>> client = urllib.Anfrage.urlopen(meine_url)
//Speichern Sie die HTML-Webseite in der Variablen „html_page“
>>> html_page = Kunde.lesen()
//Schließen Sie die URL-Verbindung nach dem Abrufen der Webseite
>>> Kunde.schließen()
// die HTML-Webseite zum Scraping nach BeautifulSoup analysieren
>>> 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 zu finden, die uns interessieren.

Sie können sehen, dass der erste auf Linuxhint aufgeführte Artikel.com heißt „74 Bash Operators Beispiele“, finden Sie dies im Quellcode. Es ist zwischen Header-Tags eingeschlossen und sein Code ist



class="category-1561">BASH-Programmierung


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


Derselbe Code wiederholt sich immer wieder, wenn nur Artikeltitel und Links geändert werden. Der nächste Artikel hat den folgenden HTML-Code



class="category-1343">Ubuntu
Lack


title="So richten Sie den Varnish-Cache unter Ubuntu 18 ein.04">
So richten Sie den Varnish-Cache unter Ubuntu 18 . ein.04


Sie können sehen, dass alle Artikel, einschließlich dieser beiden, im gleichen "

”-Tag und verwenden Sie die gleiche Klasse “entry-title”. Wir können die Funktion "findAll" in der Beautiful Soup-Bibliothek verwenden, um alle zu finden und aufzulisten

” mit der Klasse “Eintragstitel”. Geben Sie Folgendes in Ihre Python-Konsole ein

// Dieser Befehl findet alle “

” Tag-Elemente mit dem Klassennamen
"Eintragstitel". Die Ausgabe wird in einem Array gespeichert.
>>> Artikel = page_suppe.findAll("h2" ,
"Klasse" : "Eintragstitel")
// Die Anzahl der Artikel auf der Titelseite von Linuxhinthin.com
>>> len(Artikel)
102
// Zuerst extrahiert “

” Tag-Element mit Artikelname und Link
>>> artikel[0]


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


// Zweite extrahiert “

” Tag-Element mit Artikelname und Link
>>> Artikel[1]


title="So richten Sie den Varnish-Cache unter Ubuntu 18 ein.04">
So richten Sie den Varnish-Cache unter Ubuntu 18 . ein.04


// Nur Text in HTML-Tags mit der Textfunktion anzeigen
>>> Artikel[1].Text
„So richten Sie den Varnish-Cache unter Ubuntu 18 ein“.04'

Jetzt haben wir eine Liste aller 102 HTML-„

” Tag-Elemente, die Artikellink und Artikeltitel enthalten. Wir können sowohl Artikellinks als auch Titel extrahieren. So extrahieren Sie Links aus „”-Tags können wir den folgenden Code verwenden

// Der folgende Code extrahiert den Link von first

Tag-Element
>>> 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 for-Schleife schreiben, die jedes „

” Tag-Element in der Liste “Artikel” und extrahieren Sie den Artikellink und den Titel.

>>> für i im Bereich (0,10):
…    print(Artikel[i].Text)
…    für Links 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 den Varnish-Cache unter Ubuntu 18 . ein.04
https://linuxhint.com/varnish_cache_ubuntu_1804/
PineTime: Eine Linux-freundliche Smartwatch
https://linuxhint.com/pinetime_linux_smartwatch/
10 beste günstige Linux-Laptops zum Kauf mit kleinem Budget
https://linuxhint.com/best_cheap_linux_laptops/
HD-Remastered-Spiele für Linux, die nie eine Linux-Version hatten…
https://linuxhint.com/hd_remastered_games_linux/
60 FPS-Bildschirmaufnahme-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/
… schnippel…

Ebenso speichern Sie diese Ergebnisse in einer JSON- oder CSV-Datei.

Fazit

Ihre täglichen Aufgaben sind nicht nur die Dateiverwaltung oder die Ausführung von Systembefehlen. Sie können auch webbezogene Aufgaben wie die Automatisierung von Dateidownloads oder die Datenextraktion automatisieren, indem Sie das Web in Python durchsuchen. Dieser Artikel beschränkte sich nur auf die einfache Datenextraktion, aber Sie können mit „urllib“ und „BeautifulSoup“ große Aufgaben automatisieren.

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....