Ich versuche, eine einfache Alert-App für einige Freunde zu erstellen.
Grundsätzlich möchte ich Daten "Preis" und "Lagerverfügbarkeit" von einer Webseite wie die folgenden zwei extrahieren können:
Ich habe die Warnung per E-Mail und SMS-Teil gemacht, aber jetzt möchte ich in der Lage sein, die Menge und den Preis der Webseiten (dieser oder anderer) zu ermitteln, damit ich den Preis und die verfügbare Menge vergleichen kann und warnt uns, eine Bestellung aufzugeben, wenn ein Produkt zwischen einigen Schwellenwerten liegt.
Ich habe einige Regex ausprobiert (in einigen Tutorials gefunden, aber dafür habe ich einen Weg zu n00b), aber ich habe es nicht geschafft, dies zum Laufen zu bringen, irgendwelche guten Tipps oder Beispiele?
Was immer Sie tun: Verwenden Sie keine regulären Ausdrücke zum Analysieren von HTML oder schlimme Dinge werden passieren . Verwenden Sie stattdessen einen Parser .
1. geht diese Frage zu sehr ins Detail. Zweitens ist das Extrahieren von Daten von einer Website möglicherweise nicht legitim. Ich habe jedoch Hinweise:
Verwenden Sie Firebug oder Chrome / Safari Inspector, um den HTML-Inhalt und das Muster interessanter Informationen zu erkunden
Testen Sie Ihre RegEx, um zu sehen, ob die Übereinstimmung vorhanden ist. Sie müssen es möglicherweise mehrmals tun (Multi-Pass-Analyse / Extraktion)
Schreiben Sie einen Client über cURL oder noch viel einfacher, verwenden Sie file_get_contents (HINWEIS, einige Hosts deaktivieren das Laden von URLs mit file_get_contents)
Für mich würde ich besser Tidy verwenden, um zu gültigem XHTML zu konvertieren, und dann XPath verwenden, um Daten anstelle von RegEx zu extrahieren. Warum? Weil XHTML nicht regulär ist und XPath sehr flexibel ist. Sie können XSLT lernen, um zu transformieren.
Viel Glück!
Sie laden den HTML-Code wahrscheinlich am besten in einen DOM-Parser wie diesen und Suche nach der "Preis" -Tabelle. Jede Art von Scraping, die Sie tun können, kann jedoch brechen, wenn sie ihr Seitenlayout ändert, und ist wahrscheinlich ohne ihre Zustimmung illegal.
Der beste Weg wäre jedoch, mit den Leuten zu sprechen, die die Site betreiben, und zu sehen, ob sie alternative, zuverlässigere Formen der Datenlieferung haben (Web-Services, RSS oder Datenbank-Exporte kommen mir in den Sinn). p>
Die einfachste Methode, Daten von der Website zu extrahieren. Ich habe analysiert, dass alle meine Daten nur innerhalb des Tags enthalten sind, also habe ich diesen vorbereitet.
%Vor%Tags und Links php regex curl html-parsing