Tabelle aus Webseite filtern und auslesen und Werte in MySQL Datenbank abspeichern

  • PHP

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    Tabelle aus Webseite filtern und auslesen und Werte in MySQL Datenbank abspeichern

    Guten Morgen,

    ist es möglich bzw. falls ja, welche Methode eignet sich hierfür am besten, eine Tabelle aus einer (fremden) Webseite herauszusuchen, diese nach bestimmten Kriterien zu durchsuchen und das Ergebnis anschließend reihenweise in eine MySQL Datenbank abzuspeichern?

    Dachte vorerst an preg_replace bzw. preg_match, allerdings befindet sich auf der Webseite ja erstens nicht nur die Tabelle, sondern auch Hintergrundbilder, Navigationsleiste usw. und zweitens möchte ich ja dynamisch nach irgendetwas durchsuchen (also praktisch so wie eine MySQL Abfrage: SELECT Nutzername FROM Tabelle WHERE ... ).

    Nun die Frage an euch: Wie löse ich das am besten? Gibt es vielleicht eine Methode, die mir direkt die Tabelle aus der Webseite extrahiert und es mir erlaubt, diese auch zu durchsuchen und anschließend das Ergebnis reihenweise abspeichert?

    Danke im Voraus!
    Es gibt das Html Agility Pack mit einem Html Parser. Habe ihn selber noch nie verwendet, kann also nicht beurteilen wie sicher dieser richtig parst (HTML Parser sind eine nicht ganz so triviale Angelegenheit).
    htmlagilitypack.codeplex.com/

    Ansonsten wirst es selber parsen müssen nach <Table> <td><tr> usw. Da gibt es nix Fertiges AFAIK!

    //EDIT:

    Hier ist noch einer:
    http://www.majestic12.co.uk/projects/html_parser.php

    //Edit seh jetzt gerade erst das es um PHP geht, habe das vorher komplett übersehen. Einfach ignorieren. Sry!
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mono“ ()

    Danke erstmal soweit.

    Ich werde mir die einzelnen Links näher anschauen, allerdings benötige ich ein Skript oder ähnliches, welches ich in PHP einbinden kann um auf diese weise per Klick oder so, die gewünsche Tabelle auslesen kann. Dies dient dazu, das Ganze automatisch irgendwann ablaufen zu lassen, ohne dass ich hierfür das Programm manuell starten muss - deswegen das Skript (o.ä.).
    Hi,

    probiere mal folgendes Beispiel aus - funktioniert ganz gut. Beispiel ist anhand der Tabelle auf dieser Seite: w3schools.com/html/html_tables.asp

    PHP-Quellcode

    1. <?php
    2. $n = @file_get_contents('http://www.w3schools.com/html/html_tables.asp');
    3. $table = array();
    4. preg_match_all('/<table .*?w3\-table\-all.*?' . '>.*?<\/table>/is', $n, $table);
    5. $table = $table[0][0];
    6. $arr = array();
    7. preg_match_all('/<(t[rhd])( .+?)?>.*?<\/\1>/is', $table, $arr);
    8. $arr = $arr[0];
    9. echo "<pre>" . @htmlspecialchars(print_r($arr, true)) . "</pre>";
    10. ?>


    Die Ausgabe kannst du dann so nehmen und in die DB eintragen.

    Link :thumbup:
    Hello World