关于Phantomjs的javascriptEnabled问题

时间:2011-10-31 17:47:41

标签: javascript phantomjs

我正在使用phantomjs从网站上抓取一些数据。为了加快加载速度,我通过这样做禁用了网页上js的执行:

page.settings.javascriptEnabled = false;

但是这会导致问题 - 无论函数应该返回什么,它都会使page.evaluate(somefunc.toString())返回null。 如果我将js设置默认为true,则page.evaluate()将再次起作用。

我该如何解决这个问题? 感谢

1 个答案:

答案 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();
  }
};