2017-02-18 5 views
1

내 웹 사이트의 페이지에서 모든 이미지의 'src'속성을 가져오고 싶습니다. 설정 '이 javascriptEnabled'CasperJS, 자바 스크립트를 사용하여 대상 페이지의 콘텐츠를 스크랩 해제

var x = require('casper').selectXPath; 

var casper = require('casper').create({ 
     verbose: true, 
     logLevel: "debug", 
     pageSettings: { 
      javascriptEnabled: false, 
     }, 
}); 


casper.start('http://mylocalwebsite.com', function() { 
     var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google" 
     console.log(urls); // this log doesn't appears from my shell 
}); 

casper.run(); 

(재산 : 나는 내 스크립트를 사용할 때, 나는에 의해 내 초기 코드를 수정 자바 스크립트를 사용하지 않도록하려면,

var x = require('casper').selectXPath; 

var casper = require('casper').create({ 
     verbose: true, 
     logLevel: "debug", 
}); 

casper.start('http://mylocalwebsite.com', function() { 
     var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google" 
     console.log(urls); // urls are displayed in my shell 
}); 

casper.run(); 

을하지만 : 나는이 간단한 코드를 사용하여이 작업을 수행 할 수 false)

하지만 그렇게하면 스크립트가 getElementsAttribute 행 바로 다음에서 작동하지 않습니다.

저는 이것을 이해합니다. javascript를 비활성화하면 casperjs 선택기를 사용할 수 없습니다. 맞아 ? 내 페이지에서 javascript 및 스크래핑 요소를 사용 중지 할 수 없습니까?

자바 스크립트를 사용하지 않는 스크립트에서 모든 이미지의 src 콘텐츠 속성을 가져 오는 방법이 있습니까?

감사합니다.

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: "debug", 
}); 

casper.on('resource.requested', function(requestData, request){ 
    if (/\.js/.test(requestData.url)) { 
    casper.log("skipped " + requestData.url); 
    return request.cancel(); 
    } 
}); 

및 캐스퍼를 사용할 수 JS 유지 :

+0

음, 자바 스크립트를 사용 중지하고 캐스퍼가 자바 스크립트에서 실행되는 경우 ... 캐스퍼를 사용 중지합니다. 권리? 그리고 왜 어쨌든 자바 스크립트를 비활성화 하시겠습니까? – NovaDev

+0

당신이 무력화 한 것을 사용하고 싶다는 뜻입니까? –

+0

casperJS를 사용하고 싶지만 웹 사이트에서 사용하는 'no-casperJS'javascript =) (가능한 경우) – user2137454

답변

1

당신은 이러한 요청을 취소하여 실행 웹 사이트의 모든 JS을 방지 할 수 있습니다.

리소스 파일이 필요하지 않은 경우 js 파일의 URL에 .js 접미사가 없을 수 있으며 모든 리소스 요청을 취소 할 수도 있습니다.

+0

완벽, 고맙습니다 =) – user2137454