我的代码只适用于 Phantom.js ,只能使用自定义用户代理值。但是,当我尝试用 npm phantom 为 Node.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
答案 0 :(得分:2)
在 ph.createPage 和 page.open <之间 page.set 而不是 p.page.set / p>
return ph.createPage(function(page) {
page.set('settings.userAgent', "Mozilla/5.0 ... Safari/537.36");
return page.open("http://www.google.com", function(status) {