Web Scraping mit Ruby – Tutorial

Veröffentlicht: 2017-08-24

Der bemerkenswerte Anstieg und das exponentielle Wachstum von Webdaten haben neue Wege für verschiedene Sektoren erschlossen. Von Produktionseinheiten bis hin zu Dienstleistungssektoren sind Daten eine wesentliche Komponente, die von Unternehmen auf der ganzen Welt übernommen wird, um für die sich entwickelnden Zeiten relevant zu bleiben. Webdaten enthalten nicht nur eine Goldgrube an Informationen über den Wettbewerb und den Markt, sondern bieten auch Einblicke, die zur Verbesserung interner Prozesse und Abläufe genutzt werden können.

Web Scraping hilft dabei, gezielte Online-Daten zur weiteren Verwendung durch die Analyse-Engine oder das BI-Tool zu extrahieren. Das Ziel des Web Scraping bleibt vielfältig –

  • Die Datenextraktion ist eine effektive Möglichkeit, für Ihr Unternehmen zu werben und Produkte/Dienstleistungen zu bewerben
  • Benutzer, Verbraucher und Webbesucher können die gewünschten Informationen über eine Dienstleistung oder ein Produkt erhalten.
  • Unternehmen können Wettbewerbsinformationen über die Strategien und Pläne gewinnen, um ihren jeweiligen Marktanteil zu steigern.
  • Marken können die allgemeine Wahrnehmung ihrer Marke durch Interaktionen in sozialen Medien zwischen Menschen kennen. Dies hilft den Marketingteams, relevante Marketingbotschaften zu entwickeln und bereitzustellen, die speziell auf die Persönlichkeit dieser Zielgruppe zugeschnitten sind, und erhöht so die Wahrscheinlichkeit einer Konversion.
  • Unternehmen können mehr Klarheit über die Bedürfnisse, Schmerzpunkte und Vorlieben ihrer Zielgruppe gewinnen. Mit dieser wertvollen Intelligenz können sie dann die Produktentwicklung in die richtige Richtung lenken.

Stellen Sie sich die Vorteile vor, wenn wir die Webdaten strukturieren, das Rauschen beseitigen und sie in maschinenlesbare Formate exportieren könnten. Sehen wir uns an, wie dies mit Ruby erreicht werden kann.

Wahl des Codierungsskripts

Die Datenextraktion und die eigentliche Implementierung von Web-Scraping-Praktiken ist keine einfache Angelegenheit. Grundlegende Kenntnisse in CSS, HTML und dem richtigen Programmierskript machen Ihre Reise reibungslos. Dabei spielt die Wahl des Codierskripts eine entscheidende Rolle. Lassen Sie uns herausfinden, warum Ruby auf dem Markt für Furore sorgt.

Wenn Sie planen, Ihr erstes Web-Scraping-Programm zu starten, kann Ruby die Rolle einer zuverlässigen Skriptsprache übernehmen. Nicht wenige Gründe sind für die unübertroffene Popularität dieser Sprache verantwortlich, und die folgenden Gründe werden Ihnen helfen zu verstehen, warum sie so effektiv ist!

  • Ein mächtiges Skript : Ruby-On-Rails ist ein sehr mächtiges und effektives Skript zum Web Scraping. Für Anfänger und Neulinge hat sich diese spezielle Sprache als starke Ressource erwiesen.
  • Zuverlässige Community : Ruby wird von einem starken Team von Entwicklern begleitet, die eine zuverlässige und äußerst zuverlässige Community bilden. Mit Millionen von Dokumentationen wird kein Problem für Sie riesig sein!
  • Einfache Installation : Das Installationsverfahren ist gut dokumentiert und ziemlich einfach zu befolgen.

Dies sind einige der Faktoren, die Ruby zu einer unverzichtbaren Option für Web Scraping machen. Die Einrichtung und Installation sollte optimal erfolgen, da diese Prozesse für die Ausführung von Datenextraktionsprozessen entscheidend sind. Hier ist ein umfassendes Tutorial, das Ihnen durch den Prozess hilft.

Die Schritt-für-Schritt-Anleitung

Bevor wir beginnen, lassen Sie uns einige Punkte klarstellen. Dieses Tutorial richtet sich an Mac-Benutzer. Wenn Sie einen anderen Computer verwenden, kann der anfängliche Einrichtungsprozess etwas anders sein. Zweitens verwendet das Programm Nokogiri, das Webseiten in „Ruby-Objekte“ umwandeln kann, wodurch der Web-Scraping-Prozess vereinfacht wird. Mit diesen beiden Faktoren können Sie Ihre Projekte in Angriff nehmen.

In diesem Leitfaden werden wir die Schlagzeilen der ersten 100 Angebote auf olx für Gebrauchtwagen kratzen.

Der Einrichtungsprozess

Hier sind die Grundvoraussetzungen für die Entwicklung eines vollständigen Setups für die Webextraktion mit Ruby.

  • Auf Ihrem Computer, egal ob Desktop oder Laptop, sollte Ruby installiert sein. Wenn Sie ein Mac-Loyalist sind, ist die Hälfte der Arbeit erledigt.
  • Sie benötigen einen Texteditor. Das ist notwendig, um die Programmbefehle aufzuschreiben. Wenn Ihr Computer keine eingebaute Option hat, versuchen Sie, Sublime Text herunterzuladen. Mit aufregenden Funktionen und coolen Steuerelementen macht dieser Texteditor das Codieren spannend und interessant.
  • Eine weitere Voraussetzung sind fundierte Kenntnisse im Umgang mit HTML und CSS. Wenn Sie vorhaben, die Kunst des Web Scraping zu meistern, sind Kenntnisse in CSS und HTML von entscheidender Bedeutung.
  • Informieren Sie sich über Ruby. Ein paar Informationen sind in diesem Zusammenhang unerlässlich. Sie können sich einige der Online-Kurse ansehen und Ihre Wissensbasis verbessern. Wenn diese Prozesse und Faktoren vorhanden sind, wird es an der Zeit sein, die entscheidenden Schritte einzuleiten.

Schritt 1: Installieren von Abhängigkeiten

Stellen Sie während des Installationsvorgangs sicher, dass Sie vollständige Informationen über die drei nützlichen Ruby Gems erhalten. Diese drei Optionen umfassen:

  • NokoGiri
  • HTTParty
  • Neugierig sein

Da wir Nokogiri bereits ein wenig erklärt haben, lassen Sie uns über HTTParty und Pry sprechen. HTTParty ist ein Juwel, das unser Web Scraper verwendet, um HTTP-Anforderungen an die Seiten zu senden, die wir scrapen. Wir werden HTTParty verwenden, um GET-Anforderungen zu senden, die den gesamten HTML-Inhalt der Seite als Zeichenfolge zurückgeben. Zum Debuggen verwenden wir Pry, ein Rubin-Edelstein. Es hilft uns, den Code der Webseite zu parsen und ist eine wesentliche Komponente in diesem Setup.

Befolgen Sie die folgenden Befehle und führen Sie sie auf Ihrem Computer aus, um diese Edelsteine ​​​​auf Ihrem Computer zu installieren.

gem nokogiri installieren

Juwel-Installationsparty

Juwel installieren hebeln

Schritt 2: Die Erstellung von Scraper-Dateien

Sie müssen einen Ordner mit dem Namen nokogiri_tutorial an einem der bevorzugten Speicherorte auf Ihrem Computer erstellen. Der Desktop ist der perfekte Ort dafür. Der nächste Schritt besteht darin, einen Texteditor wie „Sublime Text“ oder eine andere Option Ihrer Wahl herunterzuladen und die Datei in diesem Ordner mit dem Namen „web_scraper.RB“ zu speichern. Sobald Sie diese Schritte abgeschlossen haben, können Sie an den Abhängigkeiten arbeiten.

Schritt 3: Senden von HTTP-Anforderungen an die Seite

Erstellen Sie zunächst eine Variablenoperation mit dem Namen „page“ und stellen Sie sicher, dass sie der HTTParty-GET-Anforderung der Seite entspricht, die wir scrapen.

In diesem Fall: https://www.olx.in/all-results/q-cars/

Danach können Sie „Pry. Start(Bindung).“ Navigieren Sie und finden Sie den Ordner, der als web_scraping.Rb-Datei gekennzeichnet ist. Speichern Sie es sofort auf Ihrem Desktop und öffnen Sie das Terminal, indem Sie diesen Befehl eingeben.

cd desktop/nokogiri_tutorial

Ihr Web-Scraping-Programm kann jetzt implementiert werden. Sie können diesen Befehl ausführen und ausführen:

Ruby web_scraper.RB

Das Terminal sollte in Pry umgewandelt werden, und es ist wichtig, das Layout zu überprüfen, bevor Sie an weiteren Prozessen arbeiten. Sie können mit dem nächsten Schritt fortfahren. Aber bevor Sie das tun, stellen Sie sicher, dass Sie im ausgewählten Terminal „exit“ eingeben, Pry verlassen und dann zum ursprünglichen Speicherort des Programmordners zurückkehren.

Schritt 4: Weiter zu NokoGiri

Das Ziel hier ist es, diese Autolisten zunächst in NokoGiri-Objekte zu konvertieren und zu ändern, da dies für das Parsen entscheidend ist. Die Erstellung von Variablen ist wichtig, und Sie müssen eine neue mit dem Namen „parse_page“ entwickeln. Nokogiri hat eine besondere Art, HTML-Strings in Nokogiri-Objekte umzuwandeln. Sie können den Pry am Ende des Codes belassen.

Der nächste Schritt besteht darin, die Datei zu speichern, die den Ruby-Befehl enthält. Pry wird automatisch geöffnet und eine neue Variable „parse_page“ sollte eingetragen werden. Dadurch wird die Olx-Seite als Nokogiri-Objekt zurückgegeben.

Fahren Sie fort und erstellen Sie im selben Ordner eine HTML-Datei mit dem Namen „cars.html“ und kopieren Sie die Ergebnisse des parse_page-Befehls in diese Datei. Diese formatierten HTML-Daten werden später als Referenz nützlich sein.

Bevor Sie mit dem nächsten Schritt beginnen, beenden Sie Pry in Ihrem Terminal.

Schritt 5: Datenanalyse

Das Parsen von Daten erfordert elementare Programmier- und Codierungskenntnisse. Da Sie Schlagzeilentexte aller Autoeinträge extrahieren möchten, ist die Datei cars.html beim Cross-Checking hilfreich. Suchen Sie die entscheidenden Elemente aus dem Ordner und führen Sie Inspektionen mit dem „Inspect Element Tool“ durch, oder Sie können auch den „Quellcode der Seite“ anzeigen.

Da wir festgestellt haben, dass sich die Auflistungen in einem div mit dem Klassennamen „content“ befinden, folgen die folgenden Befehle :

parse_page.css('.inhalt')

parse_page.css('.content').css('.row').css('.hdrlnk')

cars_array

Überprüfen Sie die Codierungslayouts und Arrays jedes Mal, wenn Sie den Befehl ausführen. Sobald das Parsen abgeschlossen ist, müssen Sie Datensätze in CSV-Dateien exportieren.

Schritt 6: Exportieren von Datendateien in CSV

Wenn Sie Schritt 6 erreichen, sollten Sie den Scraping-Prozess erfolgreich abgeschlossen und unstrukturierte Daten in strukturierte Datensätze umgewandelt haben. Gehen wir jetzt zurück zum Terminal. Beenden Sie Pry, wenn Sie sich noch darin befinden, sodass sich Ihr Terminal im Ordner nokogiri_tutorial befindet, der das Scraping-Programm und die Datei cars.html enthält. Geben Sie nun den folgenden Befehl ein:

touch cars.csv

Jetzt bleibt Ihnen eine leere CSV-Datei, in der Sie die Daten von cars_array speichern können. Sie können jetzt ein einfaches Skript schreiben, um diese Daten in unsere neue CSV-Datei zu schreiben, und Sie haben Ihre strukturierten Fahrzeuglistendaten in einer CSV-Datei. Dies erleichtert die Verarbeitung und Bearbeitung nach Belieben.

Abschiedsgedanken

Hoffentlich sollte Ihnen dies ein ungefähres Bild davon gegeben haben, wie Sie mit Ruby eine Website schaben können. Es ist an der Zeit, komplexere und herausforderndere Websites mit dieser neu erlernten Fähigkeit zu erkunden und zu crawlen.