Owlymedia
  • Leistungen
    • Alle Leistungen
    • Webseite für Handwerker
    • Webdesign Ruhrgebiet
    • Website Kosten & Festpreise
    • Shopware-Agentur
    • Webscraping-Lösungen
  • Referenzen
  • Preise
  • Blog
    • Alle Artikel
    • Webseite für Handwerker
    • Was kostet eine Website? Beispiele
    • Local SEO
    • Website-Performance optimieren
    • CMS vs. Hardcode Webseite
    • KI-Integration
    • Web Scraping Guide
  • Kundencenter
  • Menü öffnen
  • Projekt anfragenAnfragen
Web Scraping mit PHP

Web Scraping mit PHP: Produktdaten extrahieren

  1. Home
  2. Blog
  3. Webscraping

So extrahieren und speichern Sie Produktdaten effizient

Web Scraping ist eine gängige Methode, um automatisch Daten von Webseiten zu extrahieren. Dies wird häufig genutzt, um Informationen wie Produktpreise, Nachrichtenartikel, Börsendaten oder Kundenbewertungen zu sammeln. Mit PHP, XAMPP und MySQL können Sie ein einfaches, aber leistungsfähiges Setup aufbauen.

In diesem Artikel zeigen wir Ihnen, wie Sie Web Scraping mit PHP umsetzen, XAMPP für die lokale Entwicklung einrichten und die gesammelten Daten sicher in einer MySQL-Datenbank speichern können.

Schritt 1: Verbindung zur MySQL-Datenbank herstellen

Zu Beginn stellt das Skript eine Verbindung zur MySQL-Datenbank her. Dazu werden die Zugangsdaten wie der Servername, Benutzername und Passwort benötigt. Falls die Verbindung fehlschlägt, gibt das Skript eine Fehlermeldung aus und bricht ab.

Schritt 2: Abruf der Ziel-URL

Die Ziel-URL (https://example.com/shop) wird mit der Funktion file_get_contents() abgerufen. Falls der Abruf fehlschlägt, wird das Skript beendet und gibt eine Fehlermeldung aus.

Schritt 3: HTML-Inhalt analysieren

Der HTML-Inhalt wird in ein DOM-Dokument geladen, um die Struktur der Seite zu analysieren. Interne Fehler von libxml werden dabei ignoriert, um Ladeprobleme zu vermeiden.

Schritt 4: Wichtige Produktdaten extrahieren

Mit DOMXPath wird eine gezielte Abfrage erstellt, die nach Produktkarten auf der Seite sucht. Jede Karte enthält wesentliche Daten, die extrahiert werden:

  • Produktname: Wird aus dem <h5>-Tag extrahiert.
  • Produktpreis: Wird aus dem <span>-Tag extrahiert. Falls durchgestrichen, wird der aktuelle Preis angezeigt.
  • Bild-URL: Wird aus dem <img>-Tag entnommen.
  • Sale-Status: Wird durch das Vorhandensein eines <div>-Tags mit der Klasse "badge" erkannt.

Falls ein Datenfeld nicht vorhanden ist, wird ein Standardwert gesetzt (z. B. "No Name" für Produktnamen und "No Price" für Preise).

Schritt 5: Daten in die MySQL-Datenbank speichern

Die extrahierten Daten werden in eine MySQL-Datenbank eingefügt. Hierzu wird ein vorbereiteter SQL-Befehl verwendet, um die Daten in die Tabelle products zu speichern. Nach erfolgreichem Einfügen wird eine Bestätigungsmeldung ausgegeben und die Datenbankverbindung geschlossen.

Voraussetzungen

  • XAMPP-Installation: Laden Sie XAMPP von der offiziellen Webseite (apachefriends.org) herunter und installieren Sie es.
  • PHP-Grundkenntnisse: Grundlegendes Verständnis von PHP-Skripten und Syntax.
  • MySQL-Wissen: Wissen über das Erstellen und Verwalten von Datenbanken.
  • Internetverbindung: Notwendig zum Abrufen von Webseiteninhalten.

PHP-Code für Web Scraping

Der folgende PHP-Code ruft den Inhalt einer Webseite ab und extrahiert Produktdaten.

Speichern Sie die Datei mit dem PHP-Code als index.php in das Verzeichnis C:\xampp\htdocs\ (auf Windows) oder /opt/lampp/htdocs/ (auf Linux/Mac), wenn Sie XAMPP verwenden. Dieses Verzeichnis ist der Standard-Webordner, in dem Ihre PHP-Dateien aufgerufen werden können.

<?php
// Verbindung zur MySQL-Datenbank herstellen
$servername = "localhost";
$username = "root"; // Standardnutzer
$password = ""; // Standardpasswort
$dbname = "web_scraping";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}

// URL der Zielwebseite
$url = "https://example.com/shop";
$htmlContent = file_get_contents($url);

if ($htmlContent === FALSE) {
    die("Fehler beim Abrufen der Webseite.");
}

// HTML analysieren
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($htmlContent);
libxml_clear_errors();

// XPath erstellen, um gezielt nach Produktdaten zu suchen
$xpath = new DOMXPath($dom);

// Alle Produktkarten extrahieren
$product_cards = $xpath->query('//div[contains(@class, "col mb-5")]');

foreach ($product_cards as $card) {
    // Extrahieren des Produktnamens
    $name = $xpath->query('.//h5', $card);
    $product_name = $name->length > 0 ? $name->item(0)->textContent : 'No Name';

    // Extrahieren des Produktpreises
    $price = $xpath->query('.//div[contains(@class, "card-body")]//span', $card);
    $product_price = $price->length > 0 ? $price->item(0)->textContent : 'No Price';

    // Extrahieren des Bild-URLs
    $img = $xpath->query('.//img', $card);
    $image_url = $img->length > 0 ? $img->item(0)->getAttribute('src') : 'No Image';

    // Extrahieren des Sale-Status
    $sale_badge = $xpath->query('.//div[contains(@class, "badge")]', $card);
    $is_on_sale = $sale_badge->length > 0 ? 'On Sale' : 'No Sale';

    // Daten in die MySQL-Datenbank einfügen
    $stmt = $conn->prepare("INSERT INTO products (name, price, image_url, sale_status) VALUES (?, ?, ?, ?)");
    $stmt->bind_param("ssss", $product_name, $product_price, $image_url, $is_on_sale);
    $stmt->execute();
}

echo "Produktdaten erfolgreich gespeichert.";
$conn->close();
?>
                            

MySQL-Datenbank einrichten:

  • Öffnen Sie phpMyAdmin unter http://localhost/phpmyadmin.
  • Erstellen Sie eine neue Datenbank web_scraping.
  • Erstellen Sie eine Tabelle products mit den erforderlichen Spalten.
CREATE DATABASE IF NOT EXISTS web_scraping;

USE web_scraping;

CREATE TABLE IF NOT EXISTS products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price VARCHAR(255) NOT NULL,
    image_url VARCHAR(255) NOT NULL,
    sale_status VARCHAR(50) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
                            

Das Skript ausführen

Um das Skript auszuführen, öffnen Sie Ihren Webbrowser und navigieren Sie zu http://localhost/. Das Skript wird automatisch gestartet, und die extrahierten Produktdaten werden in der MySQL-Datenbank gespeichert. Sie können die gespeicherten Daten in der Tabelle products in phpMyAdmin einsehen.

Webscraping zuverlässig betreiben

Ein Demonstrationsskript reicht für wiederkehrende Datenerfassung meist nicht aus. Produktive Lösungen benötigen Fehlerbehandlung, Protokollierung, kontrollierte Abrufintervalle und eine klare Datenstruktur. Für Preisbeobachtung oder Sortimentsdaten kann außerdem eine Verbindung zu einem bestehenden System sinnvoll sein, beispielsweise zu einem Shopware-Shop.

Wenn Daten regelmäßig erfasst, bereinigt und bereitgestellt werden sollen, finden Sie weitere Informationen unter professionelle Webscraping-Lösungen.

Rechtliche und technische Hinweise

  • Berechtigung: Prüfen Sie Nutzungsbedingungen, Zugriffsrechte sowie mögliche Urheber- und Datenschutzanforderungen.
  • Zugriffsschutz: Umgehen Sie keine Logins, CAPTCHAs oder technischen Sperren. Ein eindeutiger User-Agent dient der Identifikation, nicht der Freigabe.
  • Rate-Limiting: Begrenzen Sie Abrufhäufigkeit und Parallelität, damit der Zielserver nicht unnötig belastet wird.
  • Änderungen: HTML-Strukturen können sich jederzeit ändern. Validieren Sie Ergebnisse und behandeln Sie fehlende Felder kontrolliert.

Blog

  • Alle Artikel
  • Webseite für Handwerker: Inhalte für mehr Anfragen
  • Was kostet eine Website? Preise & Beispiele
  • Local SEO für Handwerker (Witten/Bochum)

Leistungen

  • Alle Leistungen
  • Webseite für Handwerker
  • Webdesign Ruhrgebiet (Witten/Bochum)
  • Website Kosten & Festpreise
  • Shopware-Agentur
  • Webscraping-Lösungen
  • Pakete (Startseite)

Unverbindliche Ersteinschätzung

Kurz Branche + Ort (z. B. Witten/Bochum) schicken – wir melden uns mit einem konkreten Vorschlag.

Projekt anfragen Pakete ansehen

Beliebte Beiträge

  • Website-Performance optimieren
  • CMS vs. Hardcode Webseite
  • KI-Integration
  • Web Scraping mit PHP
Owlymedia

Authentisch und innovativ.
Bis ins kleinste Detail gebaut
mit Fokus auf Benutzerfreundlichkeit
und Leistung.

Kontakt
  • +49 151 11 85 85 05
  • kontakt [at] owlymedia [dot] de
  • Krünerstraße 50, 58456 Witten
Weiteres
  • Impressum
  • Datenschutz
  • LinkedIn.de
Leistungen & Themen Webdesign Handwerker Festpreise Shopware-Agentur Local SEO Webscraping-Lösungen

© 2026 Owlymedia. Eigenständig entwickelt.

Menü
Projekt anfragen