Ich verwende derzeit PHP DOM mit CURL und Simple HTML DOM Parser für HTML Scraping. Ich muss große Mengen an Inhalten kratzen und sie müssen gespeichert werden. Ich verwende PHP als Hauptsprache und MySQL als Speicherdatenbank, bin jedoch an Optionen in jeder Sprache interessiert und kann sie in meinen Workflow integrieren.
Gibt es andere HTML-Scraping-Pakete, die ich mir ansehen sollte? Ich habe von Web-Scrapy-Bibliotheken namens „ Scrapy “ und „ Beautiful Soup “ gehört, die auf Python basieren.
Vorschläge werden sehr geschätzt.! :)
Zum Abrufen und Analysieren von HTML verwende ich die Java-basierte Bibliothek jsoup . Es kommt erstaunlich gut mit verstümmeltem, fehlerhaft geformtem HTML-Code zurecht.
Verfügt über eine Vielzahl von Möglichkeiten zum Abfragen und Beantworten von Fragen wie "Geben Sie mir die dritte Tabelle im Dokument".
Von der Webseite der Bibliothek:
jsoup ist eine Java-Bibliothek für die Arbeit mit echtem HTML. Es bietet eine sehr praktische API zum Extrahieren und Bearbeiten von Daten unter Verwendung der besten DOM-, CSS- und jquery-ähnlichen Methoden.
jsoup
eine Java-Bibliothek, die (a) eine Webseite abruft, (b) den HTML-Code dieser Seite analysiert und (c) es Ihnen ermöglicht, Teile dieses HTML-Inhalts auf verschiedene Weise abzufragen. Lesen Sie Wikipedia für die Bedeutung von "Web Scraping" .Wenn Sie das Web-Scraping wiederholt und regelmäßig durchführen möchten und Java verwenden, sehen Sie sich die gebündelte Klasse an ScheduledExecutorService
.
Ein ExecutorService, der Befehle so planen kann, dass sie nach einer bestimmten Verzögerung oder regelmäßig ausgeführt werden.
Diese Klasse ist neuer und hat Vorteile gegenüber der häufiger zitierten Timer
Klasse. Durchsuchen Sie StackOverflow.com nach weiteren Informationen und Diskussionen.
Um einen ScheduledExecutorService zu verwenden, definieren Sie eine Klasse, die die Runnable- Schnittstelle implementiert. Diese Schnittstelle bedeutet einfach, dass Ihre Klasse eine Methode namens enthält run
. Bei dieser Methode rufen Sie Ihre Webseite ab, analysieren sie und verarbeiten/speichern sie. Bei dieser Methode könnten Sie eine Bibliothek wie jsoup
. Sie übergeben eine Instanz Ihrer Runnable-Klasse an den ScheduledExecutorService, damit sie jede Minute, Stunde und zu jeder von Ihnen festgelegten Zeit ausgeführt wird.
Hirschjäger
Basil Bourque
Olli