Web Scraping ist eine beliebte Methode zur automatischen Erfassung von Informationen aus verschiedenen Websites. Sie ermöglicht es Ihnen, die Daten schnell zu erhalten, ohne dass Sie die zahlreichen Seiten durchsuchen und die Daten kopieren und einfügen müssen.
Später werden sie in eine CSV-Datei mit strukturierten Informationen ausgegeben. Scraping-Tools sind auch in der Lage, die sich ändernden Informationen zu aktualisieren.
Es gibt zahlreiche Anwendungen, Websites und Browser-Plugins, mit denen Sie die Informationen schnell und effizient auswerten können. Es ist auch möglich, einen eigenen Web Scraper zu erstellen – das ist gar nicht so schwer, wie es scheint.
In diesem Artikel erfahren Sie mehr über Web Scraping, seine Arten und möglichen Anwendungen. Außerdem erfahren Sie, wie Sie Websites mit Ruby scrapen können.
Wege zum Sammeln der Informationen
Es gibt zwei Möglichkeiten, Informationen automatisch zu sammeln: Web Scraping und Web Crawling. Beide werden zum Extrahieren von Inhalten aus Websites verwendet, aber die Arbeitsbereiche sind unterschiedlich.
Web Scraping bezieht sich auf das Sammeln von Daten aus einer bestimmten Quelle (Website, Datenbank) oder einem lokalen Rechner.
Es beinhaltet nicht die Arbeit mit großen Datensätzen, und ein einfaches Herunterladen der Webseite wird als eine Art von Data Scraping betrachtet.
Beim Web-Crawling wird die Verarbeitung großer Datenmengen auf zahlreichen Ressourcen durchgeführt.
Der Crawler besucht die Hauptseite der Website und scannt nach und nach die gesamte Ressource. In der Regel ist der Bot so programmiert, dass er zahlreiche Websites desselben Typs besucht (z. B. Internet-Möbelgeschäfte).
Bei beiden Prozessen wird die Ausgabe der gesammelten Informationen präsentiert. Da das Internet ein offenes Netz ist und derselbe Inhalt auf verschiedenen Ressourcen wiederveröffentlicht werden kann, kann die Ausgabe viele doppelte Informationen enthalten.
Beim Crawling von Daten wird die Ausgabe verarbeitet und die Duplikate werden entfernt. Dies kann auch beim Scrapen der Informationen geschehen, ist aber nicht unbedingt Teil davon.
Wie Web Scraping funktioniert und wie man das Tool auswählt
Die Scraping-Skripte werden nach folgendem Algorithmus ausgeführt: Das Programm besucht die Webseite und wählt die erforderlichen HTML-Elemente anhand der festgelegten CSS- oder XPath-Selektoren aus.
Die notwendigen Informationen werden verarbeitet, und das Ergebnis wird im Dokument gespeichert.
Das Web bietet eine ganze Reihe von Out-of-Box-Scraping-Tools wie Online- und Desktop-Anwendungen, Browser-Erweiterungen usw. Sie bieten verschiedene Funktionen, die für unterschiedliche Bedürfnisse geeignet sind. Deshalb erfordert die Auswahl eines Web Scrapers ein wenig Marktforschung.
Werfen wir einen Blick auf die wichtigsten Funktionen, die bei der Auswahl eines Web-Scraping-Tools zu berücksichtigen sind.
- Eingabe und Ausgabe
Die verschiedenen Scraper verarbeiten unterschiedliche Arten von Informationen: Artikel, Blog- und Forenkommentare, Datenbanken von Internetshops, Tabellen, Dropdowns, Javascript-Elemente usw. Das Ergebnis kann auch in verschiedenen Formaten, wie XML oder CSV, dargestellt oder direkt in eine Datenbank geschrieben werden.
- Art der Lizenz
Die Out-of-Box Scraper können eine kostenlose und eine kommerzielle Lizenz anbieten.
Die kostenlosen Tools bieten in der Regel weniger Anpassungsmöglichkeiten, eine geringere Kapazität und eine weniger gründliche Bearbeitung. Die kostenpflichtigen Scraper bieten einen größeren Funktionsumfang und eine höhere Arbeitseffizienz und sind perfekt für den professionellen Einsatz geeignet.
- Technischer Hintergrund für die Nutzung
Einige der Werkzeuge können nur über die visuelle Schnittstelle verwendet werden, ohne dass irgendwelche Codezeilen geschrieben werden müssen.
Die anderen erfordern ein technisches Grundwissen. Es gibt auch Werkzeuge für fortgeschrittene Computernutzer. Der Unterschied zwischen ihnen liegt in den Anpassungsmöglichkeiten.
Es ist auch möglich, einen eigenen Web Scraper von Grund auf zu entwickeln. Die Anwendung kann in einer beliebigen Programmiersprache, einschließlich Ruby, geschrieben werden. Der benutzerdefinierte Ruby-Parser verfügt über alle erforderlichen Funktionen, und die Ausgabedaten werden genau so aufbereitet, wie Sie sie benötigen.
Nachdem wir die vorhandenen Arten von Web-Scraping-Tools betrachtet haben, wollen wir nun sehen, wie Sie einen Scraper für Ihre Bedürfnisse auswählen:
- Für die Verarbeitung kleinerer Informationsmengen für den persönlichen Gebrauch reichtein kostenloses, sofort einsetzbares Tool aus.
- Ein Scraper mit einer kostenpflichtigen Lizenz ist notwendig für Benutzer, die große, aber ähnliche Informationsmengen für geschäftliche und wissenschaftliche Zwecke sammeln (z. B. Finanzstatistiken).
- Ein maßgeschneidertes Tool zum Scrapen des Webs mit Ruby ist für Benutzer geeignet, die ein vollständig angepasstes Tool für professionelle Scraping-Aufgaben auf regelmäßiger Basis benötigen.
Die Anwendung von Web Scraping
Data Scraping und Crawling dienen der Verarbeitung von unstrukturierten Informationen und ihrer logischen Darstellung in Form einer Datenbank oder einer Tabellenkalkulation. Das Ergebnis sind wertvolle Informationen für Analysten und Forscher, die in vielen verschiedenen Bereichen eingesetzt werden können.
- Maschinelles Lernen
Der Ruby-Webcrawler kann Informationen aus verschiedenen Quellen sammeln und die Dynamik von Marktveränderungen ausgeben (z. B. Veränderungen von Währungskursen, Preisen für Wertpapiere, Öl, Gold, Immobilien usw.). Die Ergebnisse können dann für prädiktive Analysen und das Training künstlicher Intelligenz verwendet werden.
- Erfassung von Produktmerkmalen und Preisen
Web Scraping ist bei Aggregatoren weit verbreitet – sie sammeln die Informationen über die Waren in verschiedenen Internetshops und präsentieren sie später auf ihren Websites.
Dies gibt den Nutzern die Möglichkeit, die Preise und Eigenschaften des gewünschten Artikels auf verschiedenen Plattformen zu vergleichen, ohne zahlreiche Websites durchsuchen zu müssen.
- Sammeln von Kontaktinformationen
Web Scraping kann sowohl für den Aufbau von B2B- als auch B2C-Beziehungen nützlich sein.
Mit Hilfe von Scraping-Tools können Unternehmen Listen von Lieferanten, Partnern usw. erstellen und Datenbanken mit bestehenden und potenziellen Kunden sammeln. Mit anderen Worten: Web Scraping kann dabei helfen, Listen beliebiger Personen von Interesse zu erhalten.
- Sammeln von Stellenangeboten
Personalvermittlungsunternehmen können die Kontaktdaten potenzieller Bewerber für verschiedene offene Stellen extrahieren, und umgekehrt können auch Informationen über Stellenangebote in verschiedenen Unternehmen erfasst werden.
Dieser Output ist eine gute Grundlage nicht nur für die Suche nach den benötigten Fachkräften und Stellen, sondern auch für die Marktanalyse, die Erstellung von Statistiken über die Nachfrage und die Anforderungen an die verschiedenen Fachkräfte, ihre Gehaltssätze usw.
- Sammeln von Informationen zu einem Thema
Mit Hilfe von Scraping können Sie alle notwendigen Informationen in großen Mengen herunterladen und dann offline nutzen.
Es ist zum Beispiel möglich, alle Fragen und Antworten zu einem bestimmten Thema von Quora oder einem anderen Dienst für Fragen und Antworten zu extrahieren. Sie können auch Blogbeiträge oder die Ergebnisse von Internetsuchen sammeln.
- Durchführen von Marktforschung
Data Scraping kann von Marketingspezialisten eingesetzt werden, um eine Zielgruppe zu erforschen, die E-Mail-Basis für Newsletter zu sammeln usw.
Es hilft dabei, die Aktivitäten der Konkurrenten zu überwachen und zu verfolgen, ob sie ihre Kataloge ändern. SEO-Spezialisten können auch die Webseiten von Wettbewerbern scrapen, um die Semantik der Website zu analysieren.
Wie man Web Scraping mit Ruby durchführt
Nachdem wir uns mit der Vielfalt der Web-Scraping-Tools und den Möglichkeiten zur Verwendung der gescrapten Daten befasst haben, wollen wir nun über die Erstellung Ihres eigenen Tools sprechen. Wir stellen Ihnen einen kurzen Leitfaden vor, der die grundlegenden Schritte des Web Scraping in Ruby beschreibt.
Nützliche Tools
Diese Sprache bietet eine breite Palette an fertigen Tools für die Durchführung typischer Operationen.
Sie ermöglichen es Entwicklern, offizielle und zuverlässige Lösungen zu verwenden, anstatt das Rad neu zu erfinden. Für Ruby-Web-Scraping müssen Sie die folgenden Edelsteine auf Ihrem Computer installieren:
- NokoGiri ist ein HTML-, SAX- und RSS-Parser, der den Zugriff auf die Elemente auf der Grundlage von XPath und CSS3-Selektoren ermöglicht. Dieser Edelstein kann nicht nur für das Web-Parsing, sondern auch für die Verarbeitung verschiedener Arten von XML-Dateien verwendet werden.
- HTTParty ist ein Client für RESTful-Dienste, der HTTP-Anfragen an die gescrapten Seiten sendet und JSON- und XML-Dateien automatisch in Ihrem Ruby-Speicher parst.
- Pry ist ein Tool zum Debuggen. Es hilft uns beim Parsen des Codes aus den gescrapten Seiten.
Web Scraping ist ein recht einfacher Vorgang, für den im Allgemeinen kein Rails-Framework installiert werden muss. Es macht jedoch Sinn, wenn der Scraper Teil eines komplizierteren Dienstes ist.
Nachdem Sie die notwendigen Edelsteine installiert haben, sind Sie nun bereit zu lernen, wie man einen Web-Scraper erstellt. Los geht’s!
Schritt 1. Erstellen der Scraping-Datei
Erstellen Sie das Verzeichnis, in dem die Anwendungsdaten gespeichert werden sollen. Fügen Sie dann eine leere Textdatei hinzu, die nach der Anwendung benannt ist, und speichern Sie sie in diesem Verzeichnis. Nennen wir sie „web_scraper.rb“.
Integrieren Sie in dieser Datei die Edelsteine Nokogiri, HTTParty und Pry, indem Sie diese Befehle ausführen:
require ’nokogiri‘
require ‚httparty‘
erfordern ‚pry‘
Schritt 2. Senden der HTTP-Anfragen
Erstellen Sie eine Variable und senden Sie die HTTP-Anfrage an die Seite, die Sie scrapen wollen:
Seite = HTTParty.get(‚https://www.iana.org/domains/reserved‘)
Schritt 3. Starten von NokoGiri
Ziel dieses Schrittes ist es, die Listenelemente in Nokogiri-Objekte zu konvertieren, die dann weiter geparst werden. Legen Sie eine neue Variable mit dem Namen „parsed_page“ an und setzen Sie sie gleich mit der Nokogiri-Methode zur Umwandlung der HTML-Daten in Objekte – Sie werden sie während des gesamten Prozesses verwenden.
geparste_Seite = Nokogiri::HTML(Seite)
Pry.start(Bindung)
Speichern Sie Ihre Datei und starten Sie sie noch einmal. Führen Sie eine „parsed_page“-Variable aus, um die erforderliche Seite als Satz von Nokogiri-Objekten abzurufen.
Erstellen Sie im gleichen Ordner eine HTML-Datei (nennen wir sie „output“) und speichern Sie das Ergebnis des „parse page command“ dort. Sie werden später auf dieses Dokument verweisen können.
Bevor Sie fortfahren, beenden Sie Pry im Terminal.
Schritt 4. Parsing
Nun müssen Sie alle benötigten Listenelemente extrahieren. Dazu wählen Sie das erforderliche CSS-Element aus und geben es in die Nokogiri-Ausgabe ein. Sie können den Selektor ausfindig machen, indem Sie sich den Quellcode der Seite ansehen:
array = parsed_page.css(‚h2‘).map(&:text)
Sobald das Parsen abgeschlossen ist, müssen Sie die geparsten Daten in eine CSV-Datei exportieren, damit sie nicht verloren gehen.
Schritt 5. Exportieren
Nachdem Sie die Informationen geparst haben, müssen Sie das Scraping abschließen und die Daten in eine strukturierte Tabelle umwandeln. Kehren Sie zum Terminal zurück und führen Sie die Befehle aus:
require ‚csv‘
CSV.open(‚reserved.csv‘, ‚w‘) { |csv| csv << array }
Sie erhalten eine neue CSV-Datei, die alle geparsten Daten enthält.
Schlussfolgerung
Wir haben den Prozess des Web Scraping, seine Arten, Vorteile und möglichen Anwendungen behandelt. Sie kennen nun die grundlegenden Funktionen der vorhandenen Tools und wissen, wie Sie das richtige auswählen.
Wenn Ihr Unternehmen eine maßgeschneiderte Lösung benötigt, sprechen Sie uns an. Wir verfügen über eine gute Expertise in Ruby und wurden kürzlich von Clutch zur weltweit besten Ruby on Rails Agentur gekürt.