我想要使用PhantomJS獲取給定網頁中所有圖像src網址的列表。我的理解是,這應該是非常容易的,但無論出於何種原因,我似乎無法使其工作。這是我目前擁有的代碼:使用PhantomJS刮取圖像的src網址
var page = require('webpage').create();
page.open('http://www.walmart.com');
page.onLoadFinished = function(){
var images = page.evaluate(function(){
return document.getElementsByTagName("img");
});
for(thing in a){
console.log(thing.src);
}
phantom.exit();
}
我也試過這樣:
var a = page.evaluate(function(){
returnStuff = new Array;
for(stuff in document.images){
returnStuff.push(stuff);
}
return returnStuff;
});
這:
var page = require('webpage').create();
page.open('http://www.walmart.com', function(status){
var images = page.evaluate(function() {
return document.images;
});
for(image in images){
console.log(image.src);
}
phantom.exit();
});
我也試圖通過在圖像迭代評估函數並以這種方式獲取.src屬性。
他們都沒有返回任何有意義的東西。如果我返回document.images的長度,那麼頁面上有54個圖像,但試圖遍歷它們沒有任何用處。
另外,我看着下面的其他問題,是不能夠使用他們提供的信息:How to scrape javascript injected image src and alt with phantom.js和How to download images from a site with phantomjs
同樣,我只想源URL。我不需要實際的文件本身。謝謝你的幫助。
UPDATE
我嘗試使用
var a = page.evaluate(function(){
returnStuff = new Array;
for(stuff in document.images){
returnStuff.push(stuff.getAttribute('src'));
}
return returnStuff;
});
它拋出一個錯誤,指出stuff.getAttribute( 'SRC')返回undefined。任何想法爲什麼會這樣?
'的console.log([] map.call(document.images,A => a.src))' – dandavis