我正在使用phantomjs从网站上抓取一些数据。为了加快加载速度,我通过这样做禁用了网页上js的执行:
page.settings.javascriptEnabled = false;
但是这会导致问题 - 无论函数应该返回什么,它都会使page.evaluate(somefunc.toString())
返回null
。
如果我将js设置默认为true,则page.evaluate()
将再次起作用。
我该如何解决这个问题? 感谢
答案 0 :(得分:3)
一般来说,不要这样做。
但是,如果确实需要,您可以启用JavaScript,但阻止加载外部 .js 文件。 E.g:
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();
}
};