Wenn ich versuche, this site mit PhantomJS auszurangieren, die standardmäßig PhantomJS die folgenden Header an den Server senden:Pretend Firefox statt Phantom.js
"name":"User-Agent",
"value":"Mozilla/5.0 (Unknown; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.1 Safari/534.34"}
Und ich erhalte eine status 405 "Not Allowed"
Antwort.
Ich lese in der Phantomjs API Reference, dass ich meinen User-Agent-Wert ändern sollte, um eine Anfrage von einem anderen Browser zu imitieren. In der Wikipedia fand ich den Wert, den ich für vorgibt sein Firefox unter Ubuntu verwenden soll:
'name': 'User-Agent',
'value': 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20120815 Firefox/16.0'
In welchem Teil von PhantomJS soll ich diese Eigenschaften? Wo sollte ich sie einfügen - innerhalb page.open, oder innerhalb page.evaluate, oder an der Spitze?
Vielen Dank, es ist schwer zu spielen mit 'getElementsByClassName' nach jQuery> Sizzle – khex
@khaljava Oh, aber Sie können jquery unter phantomjs verwenden, ich habe es einfach nicht so gemacht, um es einfach zu halten. Überprüfen Sie die aktualisierte Antwort. –
einige Websites haben eine Möglichkeit, PhantomJS zu erkennen, auch wenn Sie Header setzen, sie geben Fehler oder leeren Bildschirm zurück. Wenn ich sie in Chrome öffne, ist alles in Ordnung. Ich frage mich, gibt es einen Weg, damit umzugehen – Toolkit