Scraping-Bibliothek für PHP - phpQuery?

8

Ich bin auf der Suche nach einer PHP-Bibliothek, die es mir ermöglicht, Webseiten zu verschrotten und kümmert sich um alle Cookies und das Vorfüllen der Formulare mit den Standardwerten, das ärgert mich am meisten.

Ich bin es leid, jedes einzelne Eingabeelement mit xpath abgleichen zu müssen und würde mich freuen, wenn etwas besser wäre. Ich habe phpQuery gefunden, aber das Handbuch ist nicht sehr klar und ich kann nicht herausfinden, wie man POST-Anfragen macht.

Kann mir jemand helfen? Danke.

@ Jonathan Fingland:

In dem Beispiel, das im Handbuch für browserGet () enthalten ist, haben wir:

%Vor%

Ich nehme an, dass alle anderen Felder verschrottet und in der GET-Anfrage zurückgeschickt werden. Ich möchte dasselbe mit der phpQuery :: browserPost () Methode machen, aber ich weiß nicht wie ich es machen soll. Das Formular, das ich versuche zu scrapen, hat ein Eingabe-Token und ich würde es lieben, wenn phpQuery schlau genug wäre, um das Token zu scrappen und mich einfach die anderen Felder (in diesem Fall Benutzername und Passwort) ändern zu lassen und alles per POST zu senden. p>

PS : Seien Sie versichert, dass nicht für das Spamming verwendet wird.

    
Alix Axel 29.10.2009, 15:46
quelle

3 Antworten

2

Siehe Ссылка und insbesondere:

phpQuery::post($url, $data, $callback, $type)

und

# data Object, String definiert den Datenparameter als Objekt oder String. POST-Anforderungen sollten mithilfe des Abfragezeichenfolgenformats möglich sein, z. B .:

%Vor%

da phpQuery ein jQuery-Port ist, ist die Methodensignatur identisch (die Dokumente verweisen direkt auf die jquery-Site - Ссылка )

Bearbeiten

Zwei Dinge:

Es gibt auch eine phpQuery::browserPost

Beachten Sie jedoch, dass der success2-Rückruf nur für die submit() oder click() Methoden, so dass Sie alle Formularfelder davor ausfüllen können.

z.B.

%Vor%

(Beachten Sie, dass dies nicht getestet wurde, aber sollte funktionieren)

    
Jonathan Fingland 29.10.2009, 16:00
quelle
1

Ich habe SimpleTests ScriptableBrowser für solche Sachen in der Vergangenheit verwendet. Es ist Teil des SimpleTest-Testframeworks, aber Sie können es eigenständig verwenden.

    
troelskn 29.10.2009 20:12
quelle
0

Ich würde eine dedizierte Bibliothek zum Parsen von HTML-Dateien und eine dedizierte Bibliothek zum Verarbeiten von HTTP-Anfragen verwenden. Die Verwendung derselben Bibliothek für beide scheint eine schlechte Idee zu sein, IMO.

Zum Verarbeiten von HTTP-Anfragen, z. B. Httpful , Unirest , Requests oder Guzzle . Guzzle ist heutzutage besonders beliebt, aber am Ende ist es immer noch eine Frage des persönlichen Geschmacks, welche Bibliothek für dich am besten geeignet ist.

Zum Parsen von HTML-Dateien würde ich eine Bibliothek empfehlen, die ich selbst geschrieben habe: DOM-Query . Es erlaubt Ihnen (1) eine HTML-Datei zu laden und dann (2) Teile Ihres HTML zu wählen oder zu ändern, genauso wie Sie es tun würden, wenn Sie jQuery in einer Frontend-App verwenden würden.

    
John Slegers 14.01.2016 01:13
quelle

Tags und Links