我正在尝试使用fetchText()
将Google搜索结果的网址打印到终端。这是我正在尝试打印的图像。
它只打印出空白!我没有看到任何我做错的事情?
代码:
phantom.casperPath = "/usr/local/Cellar/casperjs/1.0.3/libexec/";
phantom.injectJs(phantom.casperPath + '/bootstrap.js');
var utils = require('utils');
var casper = require('casper').create();
casper.start('https://www.google.com/search?q=amazon+shoes');
casper.wait(3000, function () {
this.echo(this.fetchText('#rso > div:nth-child(1) > li:nth-child(1) > div > div > div > div.f.kv._TD > cite'));
}).run();
答案 0 :(得分:0)
Google会根据useragent字符串更改页面。所以你需要在创建过程中设置一个字符串(带有示例字符串)
var casper = require("casper").create({
pageSettings: {
userAgent: "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"
}
});
或具有特定功能
casper.userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36");
有时候还需要将viewport
设置为像桌面一样的东西,因为PhantomJS'默认视口为400x300,Google可能会根据视口呈现不同的网站。