Frage

Gibt es eine Möglichkeit die gewünschten Daten aus einem rohen html zu extrahieren, die unsemantically ohne IDs und classes geschrieben wurde? Ich meine, es gebe eine HTML-Datei von einer Webseite (Profil), und ich möchte extrahieren die Daten wie (sagen wir) ‚Hobbies‘ gespeichert ist. Ist es möglich, dies mit PHP zu tun?

War es hilfreich?

Lösung

Verwenden Sie regex ! I kid, I kid. Wenn Sie den Zustand der gleichen Seite kennen, und das Format gewährleistet ist ähnlich genug, um bleiben, dann können Sie versuchen, einen manuellen Parser zu schreiben. Alternativ gibt es da draußen eine Menge von Bibliotheken, die html für analysieren wird. Ich bin nicht vertraut genug mit PHP ein empfehlen, aber ich bin sicher, dass einige googleing Sie einen langen Weg nehmen könnte. Ich habe Glück gehabt mit John Resig reine Javascript HTML-Parser vor.

Am Ende des Tages, wenn Sie semantische Informationen aus einer HTML-Seite benötigen, die nicht semantisch aufgebaut ist, sind Sie wahrscheinlich zum Scheitern verurteilt programmatisch und Ihre beste Wette kann ein mechanischer türke .

Andere Tipps

Klingt wie Sie für eine PHP DOM-Parser, wie diese suchen. Es wird wahrscheinlich ein bisschen schwierig sein, die Daten ziehen Sie benötigen, wenn die HTML wirklich ohne semantische Struktur ist, sondern ein DOM-Parser ist der Ort zu starten.

Ja, die Technik heißt Web-Scraping . Sie könnten das DOM, wenn seine gültige HTML verwenden. Wenn die Seite dynamisch generiert haben der Generator eine gewisse Struktur verwendet würde, und aus meiner Erfahrung kann man immer Elemente von Interesse isolieren.

Wenn DOM für Sie nicht funktioniert, können Sie nur reguläre Ausdrücke verwenden (das ist, was ich immer zu tun pflegte, wenn Web-Spinnen zu schreiben). Reguläre Ausdrücke sind effektiver und schneller, dass gegen eine DOM-Hierarchie Schaben Logik zu schreiben. Sie müssen also ein paar der Profilseiten öffnen und die statische Struktur zu analysieren. Dann schreiben Sie einfach einen regulären Ausdruck die Felder von Interesse zu isolieren.

Es gibt zwei Ansätze mit PHP zu nehmen. Die erste ist, das Dokument zu bereinigen, indem die ordentlich Erweiterung so valides XHTML es ist, und daher wohlgeformte XML, und daher analysiert werden kann XML-Tools.

Die zweite ist die PHP-Version von html5lib Parser zu verwenden, die zu implementieren versucht die HTML5-Forschung in aktuelle Browser-Parsing-Routinen. Wenn es in einem Browser angezeigt wird, können html5lib es analysieren.

Unter Verwendung entweder Ansatz, den Sie mit einem DOM-Objekt am Ende werden Sie XPath-Ausdrücken abfragen. Da Ihre theoretischen Dokumente semantische Struktur fehlt, sollten Sie toook an den Dokumentteile von einem „5. Spanne innerhalb des dritten p“ Einstellung.

Weitere Informationen hier (Selbst Link Warnung).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top