동적 콘텐츠를로드하기 위해 자바 스크립트를 사용하는 웹 사이트에서 일부 콘텐츠를 스크랩 할 것입니다. 전에는 요청 과 cheerio 를 사용 하여 긁어 냈고 잘 작동했습니다. 그러나 나는 그 요청 과 cheerio 가 동적 콘텐츠를 긁어 낼 수 없다는 것을 알았습니다 . 조사를 한 후 페이지가로드 된 후 모든 콘텐츠를 가져올 수있는 phantomjs 를 발견 했습니다 . 지금 문제가 있습니다 . cheerio 에서 사용했던 것처럼 jQuery 선택기를 사용할 수 없습니다 . 이것은 내 샘플 코드이지만 선택기는 아무것도 반환하지 않습니다.
var page = require('webpage').create();
var url = 'http://angkorauto.com/vehicle';
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
// console.log(page.content);
page.includeJs('https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js', function(){
page.evaluate(function(){
console.log($('.divTitle').find('a').attr('href'));
});
});
phantom.exit();
}, 1500);
}
});
이 문제에 대해 도와 주시겠습니까? 나는 지금 정말로 갇혀있다.
시간을 내 주셔서 감사합니다.
스크랩하려는 웹 사이트에는 이미 다른 많은 웹 사이트와 마찬가지로 jQuery가 있으므로 다시로드 할 필요가 없습니다.
이것은 잘 작동합니다.
var page = require('webpage').create();
var url = 'http://angkorauto.com/vehicle';
page.open(url, function(status) {
var href = page.evaluate(function(){
return jQuery('.divTitle').find('a').attr('href');
});
console.log(href);
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다