关于Phantomjs的javascriptEnabled问题

JJi*_*Jin 5 javascript phantomjs

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

page.settings.javascriptEnabled = false;
Run Code Online (Sandbox Code Playgroud)

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

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

Jak*_*aur 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();
  }
};
Run Code Online (Sandbox Code Playgroud)