-1

我的代码只能在Phantom.js上使用自定义用户代理值。但是,当我尝试通过npm phantomNode.js包装此代码时,我在设置 User-agent 的值时遇到了问题。正如我从模块描述中了解到的那样,它应该像这样p.page.set('settings', { ... })

即使使用示例代码它也不起作用:

var phantom = require('phantom');

phantom.create(function(ph) {
  return ph.createPage(function(page) {
    return p.page.set('settings', {userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36'});
    // or p.page.set('settings.userAgent', 'Mozilla ....');
    return page.open("http://www.google.com", function(status) {
      return page.evaluate((function() {
        return document.title;
      }), function(result) {
        console.log('Page title is ' + result);
        return ph.exit();
}); }); }); });

我应该在哪里插入此代码 - 在phantom.create之后或ph.createPage之后以及为什么它返回错误

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
ReferenceError: p is not defined
4

1 回答 1

2

ph.createPagepage.open之间只是page.set而不是p.page.set

return ph.createPage(function(page) {    
  page.set('settings.userAgent', "Mozilla/5.0 ... Safari/537.36");
  return page.open("http://www.google.com", function(status) {
于 2013-08-21T20:57:51.507 回答