2013-09-28 2 views
0

Я использую следующий скрипт, чтобы очистить изображения с помощью phantom.js:Как очистить javascript, введенное изображение src и alt с phantom.js?

var page = require('webpage').create(); 
url = 'https://www.everlane.com/collections/mens-luxury-tees/products/mens-crew-antique' 

page.open(url, function(status) { 

if (status !== 'success') { 
    console.log('error'); 
    phantom.exit(); 
    return; 
} 

var a = page.evaluate(function() { 
     return document.getElementsByTagName('img'); 
    }); 

SrcAlt = []; 
for (var i=0; i<a.length; i++){ 
    var src = a[i].getAttribute('src'); 
    var alt = a[i].getAttribute('alt'); 
    SrcAlt.push({"src": src, "alt": alt}); 
} 
console.log(SrcAlt); 
phantom.exit(); 
}); 

Но, скрипт виснет после того как я определить переменную a, то есть он не перебирать и вернуть СРК и альт атрибуты , Когда я console.log(a), он возвращает 34, поэтому я считаю, что у меня есть правильные ресурсы изображения. Как я могу получить доступ к информации src и alt? Благодаря!

ответ

0

Вам необходимо оценить свою страницу после того, как страница закончила загрузку. Вы можете сделать это, используя обратный вызов page.onLoadFinished. Этот обратный вызов вызывается после завершения загрузки содержимого страницы, и документ готов. Что-то вроде этого должно работать:

var page = require('webpage').create(); 
var url = 'https://www.everlane.com/collections/mens-luxury-tees/products/mens-crew-antique'; 

page.open(url); 

page.onLoadFinished = function() 
{ 
    var a = page.evaluate(function() { 
     return document.getElementsByTagName('img'); 
    }); 

    SrcAlt = []; 
    for (var i=0; i<a.length; i++){ 
     var src = a[i].getAttribute('src'); 
     var alt = a[i].getAttribute('alt'); 
     SrcAlt.push({"src": src, "alt": alt}); 
    } 

    console.log(SrcAlt); 
    phantom.exit(); 
} 
Смежные вопросы