CasperJS fetchText()函数回显空白输出

时间:2014-08-16 00:39:08

标签: phantomjs casperjs

我正在尝试使用fetchText()将Google搜索结果的网址打印到终端。这是我正在尝试打印的图像。

它只打印出空白!我没有看到任何我做错的事情?

enter image description here

代码:

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();

1 个答案:

答案 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可能会根据视口呈现不同的网站。