logo
languageDEdown
menu

Web Scraping mit Java: Code-Beispiele

5 Minuten lesen

Einführung

Web Scraping hilft Ihnen, große Datenmengen von Websites auf automatisierte Weise zu extrahieren. Die gewonnenen Daten können wertvolle Erkenntnisse für Ihr Unternehmen liefern.

Während visuelle Web-Scraping-Tools wie Octoparse ein einfaches No-Code-Erlebnis bieten, erfordern einige Aufgaben den individuelleren Ansatz, den Programmiersprachen wie Java ermöglichen.

In diesem Beitrag stellen wir Ihnen praktische Java-Codebeispiele vor, mit denen Sie sofort mit dem Scraping von Websites beginnen können. Wir behandeln:

  • Scraping von Textinhalten aus einfachen Webseiten
  • Extrahieren von Produktdaten wie Preisen von E-Commerce-Websites
  • Herunterladen von Multimedia-Inhalten wie Bildern und Videos

Beispiel 1 – Text Scraping

import org.jsoup.*;  
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class TextScraper {

  public static void main(String[] args) {    

    String url = "http://example.web/samplepage.html";

    try {
      Document doc = Jsoup.connect(url).get();

      //Select all <p> tags 
      Elements paragraphs = doc.select("p");  

      //Iterate through paragraphs and print text
      for (Element p : paragraphs) {
        System.out.println(p.text());
      }

    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Dieser Code bewirkt Folgendes:

  1. Importiert die JSoup-Bibliothek zum Parsen von HTML
  2. Definiert die Methode main()
  3. Ermittelt die URL der zu scrappenden Webseite
  4. Verbindet sich mit der URL und lädt den HTML-Code mit JSoup herunter
  5. Wählt alle <p>-Tags mit CSS-Selektoren aus
  6. Iteriert durch jedes <p>-Element
  7. Druckt den Text innerhalb jedes <p>-Tags

Dieses einfache Beispiel zeigt, wie man:

  • Verbindung zu einer Webseite in Java
  • den HTML-Code mit JSoup analysieren
  • Bestimmte Elemente auswählen
  • Extrahieren des Textinhalts
  • Potenzielle IO-Exceptions behandeln

Um diesen Code auszuführen:

  • Importieren in eine IDE wie IntelliJ oder Eclipse
  • Erstellen Sie ein Java-Projekt
  • Führen Sie die Methode main() aus.
  • Der Text aus allen <p>-Tags auf der Beispielseite wird auf der Konsole ausgegeben.

Beispiel 2 – Scraping von Produktdaten

import java.io.IOException;
import org.jsoup.*;    
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class ProductScraper {

  public static void main(String[] args) throws IOException { 

    String url = "http://ecommerce-site.com/product";

    Document doc = Jsoup.connect(url).get();
    
    // Select product name   
    String productName = doc.select(".product-name").text();

    // Select product price      
    String price = doc.select(".price").text();
      
    System.out.println(productName);
    System.out.println(price);  
  }
}

Dieser Code bewirkt Folgendes:

  1. Importiert JSoup und behandelt potentielle IOExceptions
  2. Definiert die Methode main() und akzeptiert die Produkt-URL
  3. Verbindet sich mit der URL und lädt das HTML herunter
  4. Wählt das Element mit der Klasse “product-name” aus, um den Produktnamen zu erhalten
  5. Wählt das Element mit der Klasse “price” aus, um den Produktpreis zu erhalten
  6. Druckt den gescrapten Produktnamen und den Preis aus

Hier wird gezeigt, wie man Daten von einer E-Commerce-Seite in Java abruft:

  • Verbindung mit der Produkt-URL
  • Analysieren des HTML
  • Auswahl bestimmter Elemente mit Hilfe von CSS-Klassen
  • Extrahieren des Textes innerhalb dieser Elemente als Name und Preis

Um diesen Code auszuführen:

  • Importieren in eine IDE wie IntelliJ oder Eclipse
  • Erstellen Sie ein Java-Projekt
  • Führen Sie die Methode main() aus.
  • Der Produktname und der Preis werden auf der Konsole ausgegeben.

Beispiel 3 – Multimedia-Scraping:

import java.io.IOException;  
import org.jsoup.*;
import org.jsoup.nodes.Document;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
import java.net.URLConnection;

public class ImageScraper {
  
  public static void main(String[] args) {
      
    // Connect to URL and parse HTML to select image URLs
      
    String imgUrl = "..."; // Extracted from HTML
    
    // Download image and save to file  
    
    URL website = new URL(imgUrl);
    URLConnection connection = website.openConnection();
    
    InputStream in = connection.getInputStream();  
      
    FileOutputStream output = new FileOutputStream("image.jpg");
    
    int b;
    while ((b = in.read()) != -1) {
      output.write(b);
    }
      
    output.close();
  }
}

Diese Code-Skizze umfasst die folgenden übergeordneten Schritte:

  1. Stellt eine Verbindung zu einer URL her und parst den HTML-Code mit JSoup
  2. Wählt Elemente aus, die Bild-/Video-URLs enthalten
  3. Erzeugt ein URL-Objekt aus einer der Bild-URLs
  4. Öffnet eine Verbindung zu dieser URL
  5. Ruft einen Eingabestrom von der Verbindung ab
  6. Erstellt einen Dateiausgabestrom, um das Bild in einer Datei zu speichern
  7. Liest Bytes aus dem Eingabestrom und schreibt sie in den Ausgabestrom
  8. Schließt die Streams nach Abschluss

Dies veranschaulicht die grundlegende Logik für:

  • Scraping von URLs für Bilder/Videos von einer Webseite in Java
  • Herunterladen dieser Multimedia-Inhalte
  • Speichern in einer tatsächlichen Bild-/Videodatei

Best Practices für Java Web Scraping

Behandlung von Ausnahmen – Verwenden Sie try/catch-Blöcke und die Behandlung von Ausnahmen, um Ihren Scraper widerstandsfähig gegen Fehler zu machen. Antizipieren Sie häufige Ausnahmen wie DOM-Ausnahmen, IO-Ausnahmen und HTTP-Fehler.

Multithread-Anfragen – Führen Sie mehrere HTTP-Anfragen parallel über mehrere Threads aus, um die Scraping-Geschwindigkeit zu erhöhen. Die Multithreading-Fähigkeiten von Java sind hier sehr nützlich.

Antworten zwischenspeichern – Zwischenspeichern Sie Seiteninhalte, die sich nicht häufig ändern. Rufen Sie bei nachfolgenden Anfragen aus dem Cache ab, um zu vermeiden, dass Sie dieselbe Seite mehrmals aufrufen.

DOM-Traversal optimieren – Traversieren Sie das DOM effizient, indem Sie stabile Anker identifizieren und optimierte Selektoren verwenden. Vermeiden Sie übermäßige selectAll()-Aufrufe.

Wiederverwendung von Objekten – Verwenden Sie Objekte wie Verbindungen und Dokumente wieder, um mehrere Seiten von derselben Website zu scrapen. Dadurch wird Overhead vermieden.

Ressourcen schließen – Schließen Sie Verbindungen, Dokumente und andere Ressourcen immer ordnungsgemäß, um Speicherlecks zu vermeiden und Stabilität zu gewährleisten.

Umgang mit Ratenbeschränkungen – Verwenden Sie Techniken wie Verzögerungen und Gleichzeitigkeitsbegrenzungen, um zu vermeiden, dass beim Scrapen einer Website Ratenbeschränkungen oder Blockierungen auftreten.

Überwachen Sie die Genauigkeit – Testen Sie Ihre Scraper regelmäßig, um sicherzustellen, dass sie weiterhin die richtigen Daten extrahieren, wenn sich Websites ändern.

Behandlung von Ausnahmen – Fangen Sie Ausnahmen ab und behandeln Sie sie, um Ihren Scraper widerstandsfähig zu machen. Antizipieren Sie häufige Ausnahmen wie DOM-Ausnahmen, IO-Ausnahmen und HTTP-Fehler.

Vergleich von Java und Octoparse beim Web Scraping

Octoparse ist ein codefreies Webdatenerfassungstool, das für die automatische Datenextraktion für Benutzer entwickelt wurde. Mit Octoparse können Benutzer leicht öffentlich verfügbare Daten von verschiedenen Websites abrufen, ohne Code schreiben zu müssen. Octoparse wird häufig im E-Commerce, in der Marktforschung, in der Datenanalyse und in anderen Bereichen eingesetzt, um den Nutzern die Informationen zu liefern, die sie für weitere Analysen oder Geschäftsentscheidungen benötigen.

Java Web ScrapingOctoparse
BenutzerfreundlichkeitErfordert technisches Fachwissen zum Schreiben von CodeVisuelle no-code Schnittstelle für Nicht-Entwickler
EntwicklungsgeschwindigkeitJava Scraper können durch Recycling von Code schneller erstellt werdenErmöglicht häufig die Einrichtung von Scrapern, die schneller zu ersten Daten führen
WartungJava Scraper erfordern laufende Code-AktualisierungenErleichtert die visuelle Überwachung und Anpassung der Abstreifer im Laufe der Zeit
SkalierbarkeitDie Multithreading-Fähigkeiten von Java machen es zu einer guten Option für die Skalierung auf große DatenmengenVon Grund auf auf Skalierung ausgelegt
IntegrationJava bietet mehr Flexibilität bei der Integration von Scrapern in bestehende SystemeVereinfacht die Verbindung zu Tools durch seine APIs und Webhooks

Octoparse bietet über 100 benutzerfreundliche Vorlagen, um Daten zu extrahieren. Über 30.000 Nutzer verwenden die Vorlagen.

https://www.octoparse.de/template/google-maps-scraper-store-details-by-keyword

Zusammenfassung

Sowohl Java Web Scraping als auch Octoparse haben ihre Vorzüge – je nach Ihren technischen Fähigkeiten, Ihrem Datenbedarf und der Komplexität der Integration. Die praktischen Java-Beispiele zeigen, wie man mit dem Scraping in einer Sprache beginnt. Octoparse bietet jedoch eine hohe Benutzerfreundlichkeit durch eine visuelle Schnittstelle und automatisiert viele komplexe Aufgaben. Wenn Ihr Ziel darin besteht, einfach nur Daten ohne Verzögerungen zu extrahieren, sollten Sie Octoparse in Betracht ziehen. Seine KI-Funktionen erkennen Seitenänderungen, so dass Ihre Scraper weiterhin funktionieren. Melden Sie sich noch heute für eine kostenlose Octoparse-Testversion an. Erstellen Sie schnell Ihren ersten visuellen No-Code Web Scraper – auch wenn Sie keine Programmiererfahrung haben – um entscheidende Erkenntnisse zu gewinnen und der Konkurrenz einen Schritt voraus zu sein.

Hier bekommen Sie Octoparse! 🤩

Preis: $0~$249 pro Monat

Packet & Preise: Octoparse Premium-Preise & Verpackung

Kostenlose Testversion: 14-tägige kostenlose Testversion

Herunterladen: Octoparse für Windows und MacOs

Wenn Sie Probleme bei der Datenextraktion haben, oder uns etwas Vorschlägen geben möchten, kontaktieren Sie bitte uns per E-Mail (support@octoparse.com). 💬

Autor*in: Das Octoparse Team ❤️

Konvertiere Website-Daten direkt in Excel, CSV, Google Sheets und Ihre Datenbank.

Scrape Daten einfach mit Auto-Dedektion, ganz ohne Coding.

Scraping-Vorlagen für beliebte Websites, um Daten mit wenigen Klicks zu erhalten.

Mit IP-Proxys und fortschrittlicher API wird nie blockiert.

Cloud-Dienst zur Planung von Datenabfragen zu jedem gewünschten Zeitpunkt.

Erhalte Webdaten in Klicks
Daten-Scraping von jeder Website ganz ohne Codierung.
Kostenloser Download

Beliebte Beiträge

Themen untersuchen

Starten mit Octoparse heute

Downloaden

Verwandte Artikel

  • avatarNeela Schmidt
    KI (Künstliche Intelligenz) erregt Aufmerksamkeit als eine Technologie, die das geschäftliche und gesellschaftliche Umfeld durch neue Lernmethoden stark verändern wird. Die neue Lernmethode heißt „Machine Learning“ und „Deep Learning“. Was für eine Lernmethode ist Deep Learning? Dieses Mal erkläre ich Deep Learning, eine Lernmethode für KI. Wir werden auch Beispiele für die KI-Nutzung vorstellen, die Deep Learning anwendet. Wenn Sie darüber nachdenken, ein Unternehmen zu entwickeln, das in Zukunft KI nutzt, beziehen Sie sich bitte darauf.
    2024-06-07T00:00:00+00:00 · 7 Minuten lesen
  • avatarNeela Schmidt
    Ist es möglich, Web-Scraping in Google Tabellen (engl. Google Sheets) durchzuführen? Diese Frage könnte auch Ihnen in den Sinn kommen, da Google Tabellen mittlerweile zu den beliebtesten cloudbasierten Tools zählt. Tatsächlich kann Google Tabellen als eine Art einfacher Web Scraper angesehen werden. Mithilfe spezieller Formeln können Daten von Websites extrahiert, direkt in Google Tabellen importiert und mit anderen geteilt werden.
    2024-05-27T10:00:00+00:00 · 3 Minuten lesen
  • avatarChristel Kiesel
    In diesem Tutorial zeige ich Ihnen, wie Sie aktuelle Börsendaten für weitere Aktionen extrahieren können. Wertpapierfirmen sind heutzutage dabei, ausgeklügelte Algorithmen für den Aktienhandel zu entwickeln. Egal, ob es um die Vorhersage von Aktienkursen, die Analyse der Börsenstimmung oder das Aktienresearch geht, benötigen sie eine große Menge an genauen Daten. Normalerweise haben solche Firmen das Kapital, um ein Team von Entwicklern einzustellen. Aber für unabhängige Forscher, die den Aktienmarkt vorhersagen wollen, gibt es auch eine erschwingliche Methode, um die Daten mühelos in großem Umfang zu erhalten.
    2024-01-24T00:00:00+00:00 · 3 Minuten lesen
  • avatarChristel Kiesel
    Node.js ist eine Open-Source-plattform, die auf der JavaScript-Laufzeitumgebung aufbaut. Mit Node.js können Sie serverseitige Anwendungen mit JavaScript erstellen. Es bietet eine leistungsstarke ApI und viele Bibliotheken, die Ihnen helfen, schnell und einfach Web Scraping-Anwendungen zu erstellen. Node.js eignet sich ideal für das Web Scraping, da es schnell und skalierbar ist. Darüber hinaus bietet es die Möglichkeit, asynchrone programmierung mit Callbacks, promises und Async / Await zu implementieren. Dies ist entscheidend, da das Scraping von Websites häufig asynchrone Aufgaben erfordert, um mit Verzögerungen und Fehlern umzugehen.
    2023-03-30T00:00:00+00:00 · 5 Minuten lesen