См обновление ниже линии.
Причина, по которой ваш пример не срабатывает, - это сложная целевая страница, которая проверяет, открывается ли страница в реальном браузере, который может выполнять javscript. При первой загрузке страницы вашему браузеру предоставляется javascript для выполнения. Затем во второй раз, когда страница загружается, отображается реальная страница.
Но в вашем примере скрипт выходит сразу после загрузки первой страницы.
Немного лучшее решение, которое не полагается на тайм-аут 3 секунд (подключение к китайским сайтам часто происходит медленно, мы не можем быть на 100% уверены, что достаточно 3 секунд).
var system = require('system');
var page = require('webpage').create();
var system = require('system');
var page = require('webpage').create();
// Imitate a real browser
page.viewportSize = { width: 1440, height: 900 };
page.settings.userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
// Called every time a page is loaded
page.onLoadFinished = function(){
// If the real page with search controls is loaded
// then get page.content and exit
var inputCount = page.evaluate(function(){
return document.querySelectorAll(".jfk-textinput").length;
});
if(inputCount > 0) {
console.log(page.content);
phantom.exit();
}
};
page.open(system.args[1]);
UPDATE
Итак, вы, вероятно, после того, как результаты поиска. В этом случае вы можете изменить логику, которая решает, что страница загружается на это решение:
var inputCount = page.evaluate(function(){
return document.querySelectorAll("h3").length;
});
... потому, что заголовки статей, найденных выводятся с <h3> бирок.
вместо example.com вам необходимо указать реальный адрес –
извините, что я скопировал пример. Все еще не работает с фактической страницей. – Zaico
Почему вы упоминаете wget, если он не используется (по крайней мере здесь) – Vaviloff