PhantomJS를 사용하여 주어진 웹 페이지의 모든 이미지 src url 목록을 가져 오려고합니다. 나의 이해는 이것이 아주 쉬워야한다는 것이다. 그러나 어떤 이유에서인지, 나는 그것을 작동시키는 것처럼 보이지 않는다.스크랩 이미지 src PhantomJS를 사용하는 URL
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();
});
나는 또한에있는 이미지를 반복 시도했습니다
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();
}
나는이 시도했습니다 : 여기에 내가 현재 가지고있는 코드입니다 함수를 평가하고 그런 식으로 .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 나는 그것은 stuff.getAttribute ('SRC')가 undefined를 반환 없다는 오류가 발생했습니다
var a = page.evaluate(function(){ returnStuff = new Array; for(stuff in document.images){ returnStuff.push(stuff.getAttribute('src')); } return returnStuff; });
를 사용했습니다. 그게 왜 일어날까요?
CONSOLE.LOG '(.] map.call (document.images는이> a.src) =)' – dandavis