Scraping mit der lxml-Bibliothek – Verwenden Sie cssselect oder xpath selectors

Bei der Arbeit an Deep Learning Consulting oder Natural Language Processing Consulting besteht häufig die Notwendigkeit, Datensätze für das Training aus dem Internet abzurufen.

Oftmals werden die Websites (meistens) nach Textdaten und (seltener) nach Bildern durchsucht.

Was ist Scraping?

Web Scraping ist ein Ansatz zur Verwendung von Bots oder anderen Programmen, um den Zugriff auf und das Extrahieren von Daten von Websites zu automatisieren. Dies ermöglicht es Ihnen, viel Zeit zu sparen, für Sie oder z. Mitarbeiter oder andere Personen in Ihrer Organisation.

In einer der frühesten Phasen des Internets, 2000-2005, war Perl eine beliebte Programmiersprache für das Scraping von Websites (ich erinnere mich immer noch daran, das Mechanize-Modul zu verwenden). Dies hat sich in den letzten zehn Jahren geändert. Am häufigsten greife ich zu diesem Zweck auf Python zurück.

Man kann dafür Spezialbibliotheken wie Beautiful Soup oder Scrapy verwenden. Scrapy hat eine Menge Logik, die für verschiedene Teile des Scrapings programmiert ist. Ich mag besonders Scrapy-Regeln, mit denen Sie Ihre Scrapingspinnen kontrollieren können.

Ein wichtiger Teil beim Sammeln von Daten von Websites ist auch das Parsen. Wenn sie strukturiert sind, ist die Zeitersparnis besonders hoch, da man einen Satz von Regeln definieren und dann 10000 Seiten mit diesen Regeln scrapen kann. Das Scrapen von Websites ist oft der einzige Weg, um einige gute Datensätze für eine Deep-Learning-Consulting zu erhalten.

Eine sehr nützliche Bibliothek zum Parsen von XML- und HTML-Dateien ist lxml. Lxml ist eigentlich eine pythonische Bindung für libxml2 und libxst.

Installation von lxml

Verwenden Sie zur Installation von lxml einfach den python-Paketmanager pip:

Einbinden von lxml in Python-Projekte

Beispiele für das Einbinden von lxml in Projekte:

Umgang mit Elementklasse

Element ist das Schlüsselobjekt für die ElementTree-API. Weitere Informationen finden Sie unter http://effbot.org/zone/element-index.htm. Beispiel für das Erstellen eines neuen Elements mit lxml:

So greifen Sie auf den Namen des neuen Elements zu:

Verwenden von Selektoren zum Suchen von Informationen in Dateien

Zwei typische Arten von Selektoren mit lxml:

  • cssselect (falls nicht, installiere es mit pip install cssselect)
  • xpath

Schauen wir uns ein Beispiel für seine Verwendung an.

bringt:

Scraping ist eine der wichtigsten Techniken zum Abrufen von Datensätzen für Deep Learning und Data-Science-Aufgaben.