5
我正在使用phantomjs從網站上刮取一些數據。爲了加快載入我做這個禁用JS的執行網頁上:Phantomjs上的javascriptEnabled問題
page.settings.javascriptEnabled = false;
,但是這會導致問題 - 它使page.evaluate(somefunc.toString())
回報null
無論函數應該返回什麼。 如果我將js設置的默認值設置爲true,那麼page.evaluate()
會再次工作。
我該如何解決這個問題? 謝謝
這裏比「不這樣做」有更好的答案嗎?如果您沒有啓用JS,那麼該頁面無法評估JS功能。 (另外,你可以傳遞一個函數引用到'page.evaluate()' - '.toString()'是不必要的。) – nrabinowitz
我必須同意narbinowitz這個。如果關閉頁面上的JS,它肯定無法在頁面上下文中評估JS。 –
我不同意這種觀點,phantomJS應該像瀏覽器一樣工作。例如,在Chrome上禁用JavaScript時,您仍然可以訪問開發人員工具中的控制檯,從而訪問'window'對象。我相信它應該模仿相同的行爲,其中禁用JavaScript意味着phantomjs應該只禁用在頁面內運行的腳本,但不會阻止開發人員評估新腳本。通過控制檯,在phantomjs「評估」是唯一的途徑。 – zanona