logo
languageDEdown
menu

Web Scraping mit Java: Code-Beispiele, die du sofort nutzen kannst

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

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

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 ❤️

Themen untersuchen

Starten mit Octoparse heute

Download

Verwandte Artikel

  • avatarNeela Schmidt
    Einleitung Das Web Scraping, also die Extraktion von Da […]
    13. Juni 2023 · 5 Minuten lesen
  • avatarChristel Kiesel
    Marketingspezialisten stehen heute vor einer Vielzahl von Herausforderungen: Kunden verstehen, der Konkurrenz voraus sein, ROI nachweisen und die Auswirkungen auf die Unternehmensziele belegen. Die effektive Nutzung von SEO-Forschung und Web Scraping kann modernen Vermarktern die Erkenntnisse und Daten liefern, die sie benötigen, um ihre Leistung zu verbessern, ihre Sichtbarkeit zu erhöhen und ihre Marketingstrategien wirklich zu revolutionieren. In diesem Artikel befassen wir uns mit den Vorteilen der Nutzung von SEO-Forschung und Web Scraping für moderne Marketinginitiativen.
    17. März 2023 · 5 Minuten lesen
  • avatarChristel Kiesel
    Sie sind sich bewusst der Bedeutung von Verbraucherinformationen als Geschäftsinhaber oder Vermarkter. Sie bieten Ihnen nützliche Informationen über Ihren potenziellen Zielmarkt, die Ihnen bei der Entscheidung über Ihre Produkte und Marketingstrategien helfen können. Es kann jedoch eine schwierigere Aufgabe sein, diese Informationen zusammenzutragen. Die gute Nachricht ist, dass das Sammeln der Daten, die Sie für die Erstellung von Verbraucherinformationen benötigen, dank Web Scraping-Technologien heute einfacher ist als je zuvor.
    16. März 2023 · 8 Minuten lesen
  • 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.
    07. März 2023 · 7 Minuten lesen