Skip to content

Kurzanleitung mit Codebeispiel zur Verwendung von Java für Web-Scraping

License

Notifications You must be signed in to change notification settings

bright-data-de/java-web-scraping

Repository files navigation

Java-web-scraping

Schnellleitfaden mit Codebeispiel, wie Sie Java für Web-Scraping verwenden

java web scraping header

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 -version
  • mvn -v

Alternative Solution

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.

Schritt Eins: Untersuchen Sie Ihre Zielseite

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.

Schritt Zwei: Beginnen Sie mit dem Scraping des HTML

Öffnen Sie IntelliJ IDEA und erstellen Sie ein Maven-Projekt:

intellij IDEA Maven project

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:

open new java source

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;
  }

Schritt Drei: Extrahieren/Parsen der Daten aus dem HTML

Nun extrahieren wir die Ziel-Preisdaten, an denen wir interessiert sind. Wir verwenden dazu die folgenden integrierten **HtmlUnit**-Befehle. So würde das für Datenpunkte in Bezug auf **Produktpreis** aussehen:
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:

xpath of element

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.

Schritt Vier: Exportieren der Daten

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();
	}

Conclusion

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.

About

Kurzanleitung mit Codebeispiel zur Verwendung von Java für Web-Scraping

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published