PHP-CSS-Auswahlbibliothek? [closed]

Lesezeit: 4 Minuten

Benutzer-Avatar
Wilco

Gibt es eine PHP-Klasse/Bibliothek, die es mir ermöglichen würde, ein XHTML-Dokument mit CSS-Selektoren abzufragen? Ich muss einige Seiten nach Daten durchsuchen, die sehr leicht zugänglich sind, wenn ich irgendwie CSS-Selektoren verwenden könnte (jQuery hat mich verwöhnt!). Irgendwelche Ideen?

Benutzer-Avatar
Wilco

Nachdem Sie weiter gegoogelt haben (anfängliche Ergebnisse waren nicht sehr hilfreich), scheint es tatsächlich eine Zend Framework-Bibliothek dafür zu geben, zusammen mit einigen anderen:

  • +1 phpQuery ist absolut wunderbar.

    – Samson

    17. Juli 2009 um 18:36 Uhr

  • Ich habe 3 der von Ihnen aufgelisteten Artikel ausprobiert. Am Ende habe ich mich für Simple HTML DOM entschieden, nur weil sie die Verwendung sehr einfach und gut erklärt erklären. phpQuery hat die Arbeit erledigt, aber ich hatte das Gefühl, dass es an Dokumentation und Unterstützung mangelte. Zend hat meine Abfrage erfolgreich erfasst und gezählt, aber als es darum ging, die Werte zu erhalten, schlug es fehl. Auch hier ist mein Vorschlag Simple HTML DOM.

    – NessDan

    10. Dezember 2010 um 2:50 Uhr

  • Obwohl einfaches HTML-Dom sehr beliebt ist, a) deckt es die vollständige Selektorsyntax nicht gut ab. b) Tut es nicht erscheinen in aktiver Entwicklung sein.

    – Bobby Jack

    7. Dezember 2011 um 11:42 Uhr

  • Ich arbeite derzeit mit phpQuery: Zend_Dom_Query hilft wahrscheinlich nur, wenn Sie bereits Zend Framework verwenden. Einfacher HTML-DOM-Parser sieht zu klein aus. phpQuery sieht gut aus und umschließt auch DOMDocument, das ich bereits überall in meinen Tests verwende, sodass es für mich nicht neu analysiert werden muss. DomQuery ist verschwunden. pqLite ist eine Option, verwendet jedoch eine eigene Knotenstruktur und erfordert daher eine erneute Analyse des Dokuments.

    – qris

    16. November 2012 um 12:40 Uhr


  • Faire Warnung! pqLite scheint tot zu sein. Das einzige Suchergebnis, das ich gefunden habe, war mit einer Malware-Website verknüpft.

    – CubicleSoft

    4. Februar 2017 um 19:42 Uhr

XPath ist eine ziemlich standardmäßige Methode für den Zugriff auf XML- (und XHTML-) Knoten und bietet viel mehr Präzision als CSS.

  • +1 auf 0 zu bringen, aber hauptsächlich, weil Alternativen immer gut sind.

    – Lidlosigkeit

    4. November 2008 um 7:05 Uhr

  • wow, wurde ich dafür runtergevotet? Mich interessiert irgendwie warum…

    – Nickf

    4. November 2008 um 10:36 Uhr

  • War ich nicht der OP! 🙂 Ich denke tatsächlich, dass dies die beste Alternative wäre, da XHTML nur eine Teilmenge von XML ist.

    – Wilko

    4. November 2008 um 16:54 Uhr

  • Manchmal sind die Leute hier eher willkürlich. Ich habe zugestimmt, dass XPath ein besseres Werkzeug ist, wenn es verfügbar ist. Es ist Standard, leistungsfähiger und den CSS-Selektoren sowieso ziemlich ähnlich.

    – troelskn

    5. November 2008 um 15:01 Uhr

  • In CSS konnten Sie nichts tun wie “das übergeordnete Element eines ‘starken’ Tags auswählen”

    – Nickf

    5. April 2009 um 5:43 Uhr

Noch einer:
http://querypath.org/

  • Sieht für mich besser aus als alle anderen Optionen – danke!

    – Bobby Jack

    7. Dezember 2011 um 12:06 Uhr

Zum jQuery Benutzer am interessantesten sein können Portierung von jQuery auf PHPwelches ist phpQuery. Fast alle Bereiche der Bibliothek sind portiert. Zusätzlich enthält es Webbrowser Plugin, das für das Web Scraping des Pfades/Prozesses der gesamten Website verwendet werden kann (z. B. Zugriff auf Daten, die nach dem Einloggen verfügbar sind). Es simuliert einfach den Webbrowser auf dem Server (auch Ereignisse und Cookies). Neueste Versionen bieten experimentelle Unterstützung für XML Namensräume und CSS3 “|” Wähler.

Am Ende habe ich verwendet PHP-Abfrage Litees ist sehr einfach und hat alles, was ich brauche.

  • Abgestimmt, weil dies anscheinend nicht mehr existiert.

    – Richard

    18. Januar 2017 um 12:09 Uhr

Zum Analysieren von Dokumenten verwende ich Dom. Dies kann Ihr Problem ganz einfach lösen, wenn Sie den Tag-Namen kennen (in diesem Beispiel “div”):

 $doc = new DOMDocument();
 $doc->loadHTML($html);

 $elements = $doc->getElementsByTagName("div");
 foreach ($elements as $e){
  if ($e->getAttribute("class")!="someclass") continue;

  //its a div.classname
 }

Nicht sicher, ob Sie mit DOM alle Elemente eines Dokuments auf einmal abrufen können … Möglicherweise müssen Sie eine Baumdurchquerung durchführen.

  • Abgestimmt, weil dies anscheinend nicht mehr existiert.

    – Richard

    18. Januar 2017 um 12:09 Uhr

Benutzer-Avatar
131

Ich habe meine basierend auf der Mootools CSS-Auswahl-Engine geschrieben http://selectors.svn.exyks.org/. es stützt sich auf die Simplexml-Erweiterungsfähigkeit (also ist es schreibgeschützt)

1178830cookie-checkPHP-CSS-Auswahlbibliothek? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy