5

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

page.settings.javascriptEnabled = false;

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

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

4

1 回答 1

3

一般来说,不要那样做。

但是,如果您真的需要,您可以启用 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();
  }
};
于 2014-11-23T23:55:14.293 回答