我正在使用 phantomjs 从网站上抓取一些数据。为了加快加载速度,我通过执行以下操作禁用了网页上的 js 执行:
page.settings.javascriptEnabled = false;
但这会导致问题——无论函数应该返回什么,它都会返回page.evaluate(somefunc.toString())
。null
如果我将 js 设置默认为 true,page.evaluate()
则将再次起作用。
我应该如何解决这个问题?谢谢
我正在使用 phantomjs 从网站上抓取一些数据。为了加快加载速度,我通过执行以下操作禁用了网页上的 js 执行:
page.settings.javascriptEnabled = false;
但这会导致问题——无论函数应该返回什么,它都会返回page.evaluate(somefunc.toString())
。null
如果我将 js 设置默认为 true,page.evaluate()
则将再次起作用。
我应该如何解决这个问题?谢谢
一般来说,不要那样做。
但是,如果您真的需要,您可以启用 JavaScript,但阻止加载外部.js文件。例如:
page.onResourceRequested = function(requestData, request) {
if (requestData['Content-Type'] == 'application/javascript' || requestData['Content-Type'] == 'text/javascript') {
console.log('Disabling JavaScript files. Aborting: ' + requestData['url']);
request.abort();
}
};