2015-05-05 5 views
2

Я пытаюсь загрузить веб-страницу с помощью PhantomJS с приведенным ниже кодом, где «адрес» - это url, а «dir» - путь к файлу, где я загружаю код веб-страницы.Загрузите веб-страницу с PhantomJS

var system = require('system'); 
var page = require('webpage').create(); 
var fs = require('fs'); 

// Set the url address 
address = system.args[1]; 

// Set the file path 
var dir = system.args[2]; 

page.open(address, function() { 
    fs.write(dir, page.content, 'w'); 
    phantom.exit(); 
}); 

Это корректно работает во многих веб-страницах, но и в этом случае («http://www.lefties.com/es/es/woman/zapatos-c1029521.html») я не могу видеть HREF продуктов, потому что, когда я загрузить его с phantomJS или без него, что скачал является полноэкранным popup с подпиской на cookie. Это не дает возможности найти продукты href в загруженном html.

Кроме того, PhantomJS показывает эту ошибку, когда я загрузить его:

TypeError: 'null' is not an object (evaluating '$('PopupFullscreen').getElementById('Close').setStyles')

Любая идея, чтобы избежать подписки/куки всплывающего окна?

enter image description here

ответ

1

Модифицированные диалоговые окна cookie, подобные этому, распространены сейчас. Вы почти всегда можете закрыть эти диалоги. Click на кнопке закрытия, чтобы закрыть его.

Просто потому, что есть диалог этой модели, это не значит, что вы не можете получить доступ к DOM за ним. Разметка все еще существует (кроме, возможно, отсутствующей разметки из-за TypeError).

Это сообщение об ошибке появляется, потому что на странице JavaScript используется некоторая функция, которая не реализована в PhantomJS 1.x. Если вы используете PhantomJS 2, он исчезнет.