Während einige Menschen die Verwendung von Python bevorzugen, ist eine weitere beliebte Option die Nutzung von Java für Web-Scraping. Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie dies ganz einfach umsetzen können.
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes auf Ihrem Computer eingerichtet haben, damit die Umgebung für Web-Scraping optimal ist:
Java11 - Es gibt zwar fortschrittlichere Versionen, aber diese ist bei weitem die beliebteste unter Entwicklern.
Maven – Ist ein Build-Automatisierungstool für die Verwaltung von Dependencies
IntelliJ IDEA – IntelliJ IDEA ist eine integrierte Entwicklungsumgebung zur Entwicklung von Computersoftware, die in Java geschrieben ist.
HtmlUnit – Dies ist ein Simulator für Browser-Aktivitäten (z. B. Simulation von Formularübermittlungen).
Sie können Installationen mit diesen Befehlen überprüfen:
java -versionmvn -v
Bright Data's Web Scraping API bietet eine vollständig automatisierte Lösung für die Datenerfassung. Überspringen Sie die Komplexität der Einrichtung und Wartung Ihrer Scraper—definieren Sie einfach Ihre Zielseite, den gewünschten Datensatz und das Ausgabeformat. Egal, ob Sie strukturierte Daten in Echtzeit oder geplante Zustellungen benötigen, Bright Data's robuste Tools gewährleisten Genauigkeit, Skalierbarkeit und Benutzerfreundlichkeit. Perfekt für Fachleute, die Effizienz und Zuverlässigkeit in ihren Datenprozessen schätzen.
Nun lassen Sie uns mit unserem Java-Scraper fortfahren.
Gehen Sie zur Zielseite, von der Sie Daten sammeln möchten, klicken Sie irgendwo mit der rechten Maustaste und wählen Sie „inspect element“, um auf die „Developer Console“ zuzugreifen, die Ihnen Zugriff auf das HTML der Webseite gewährt. Öffnen Sie IntelliJ IDEA und erstellen Sie ein Maven-Projekt:Maven-Projekte haben eine pom.xml-Datei. Navigieren Sie zur pom.xml-Datei und richten Sie zunächst die JDK-Version für Ihr Projekt ein:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
Fügen Sie anschließend die HtmlUnit-Dependency zur pom.xml-Datei wie folgt hinzu:
<dependencies>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.63.0</version>
</dependency>
</dependencies>
Nun ist alles eingerichtet, um mit dem Schreiben der ersten Java-Klasse zu beginnen. Beginnen Sie, indem Sie eine neue Java-Quelldatei wie folgt erstellen:
Wir müssen eine main-Methode erstellen, damit unsere Anwendung starten kann. Erstellen Sie die main-Methode wie folgt:
public static void main(String[] args) throws IOException {
}
Die App startet mit dieser Methode. Sie ist der Einstiegspunkt der Anwendung. Sie können nun eine HTTP request mithilfe von HtmlUnit-Imports wie folgt senden:
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
import java.io.IOException;
import java.util.List;
Erstellen Sie nun einen WebClient, indem Sie die Optionen wie folgt festlegen:
private static WebClient createWebClient() {
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(false);
return webClient;
}
WebClient webClient = createWebClient();
try {
String link = "https://www.ebay.com/itm/332852436920?epid=108867251&hash=item4d7f8d1fb8:g:cvYAAOSwOIlb0NGY";
HtmlPage page = webClient.getPage(link);
System.out.println(page.getTitleText());
String xpath = "//*[@id=\"mm-saleDscPrc\"]";
HtmlSpan priceDiv = (HtmlSpan) page.getByXPath(xpath).get(0);
System.out.println(priceDiv.asNormalizedText());
CsvWriter.writeCsvFile(link, priceDiv.asNormalizedText());
} catch (FailingHttpStatusCodeException | IOException e) {
e.printStackTrace();
} finally {
webClient.close();
}
Um den XPath des gewünschten Elements zu erhalten, verwenden Sie die Developer Console. Klicken Sie in der Developer Console mit der rechten Maustaste auf den ausgewählten Abschnitt und klicken Sie auf „Copy XPath“. Dieser Befehl kopiert den ausgewählten Abschnitt als XPath-Ausdruck:
Die Webseiten enthalten Links, Text, Grafiken und Tabellen. Wenn Sie den XPath einer Tabelle auswählen, können Sie sie in CSV exportieren und weitere Berechnungen sowie Analysen mit Programmen wie Microsoft Excel durchführen. Im nächsten Schritt betrachten wir den Export einer Tabelle als CSV-Datei.
Nachdem die Daten geparst wurden, können wir sie zur weiteren Analyse in das CSV-Format exportieren. Dieses Format wird von manchen Fachleuten gegenüber anderen bevorzugt, da es anschließend einfach in Microsoft Excel geöffnet/angezeigt werden kann. Hier sind die zu verwendenden Befehlszeilen, um dies umzusetzen:public static void writeCsvFile(String link, String price) throws IOException {
FileWriter recipesFile = new FileWriter("export.csv", true);
recipesFile.write("link, price\n");
recipesFile.write(link + ", " + price);
recipesFile.close();
}
Obwohl Java Fachleuten in verschiedenen Bereichen helfen kann, die benötigten Daten zu extrahieren, kann der Prozess des Web-Scraping ziemlich zeitaufwendig sein. Um Ihre Datenerfassungsprozesse vollständig zu automatisieren, können Sie ein Tool wie Bright Data's Web Scraping API nutzen. Alles, was Sie tun müssen, ist, die Zielseite und den Ausgabe-Datensatz auszuwählen und anschließend Ihren gewünschten Zeitplan, das Dateiformat und die Zustellmethode festzulegen.



