2016-08-11 2 views
3
var casper = require('casper').create({ 
viewportSize: { 
    width: 1920, 
    height: 1080 
}, 
verbose: true, 
logLevel: 'debug' 
}); 

var utils = require('utils'); 
casper.options.onResourceRequested = function(C, requestData, request) { 
    utils.dump(requestData.headers); 
}; 
var url = casper.cli.get('url'); 
var filename = casper.cli.get('filename'); 
var headers = casper.cli.get('storefront'); 

if (headers != null) { 
    casper.userAgent('iTunes/12.4.3 (Windows; Microsoft Windows 10.0 x64 Business Edition (Build 9200); x64) AppleWebKit/7601.6016.1000.7'); 
} 

casper.start().then(function() { 
    casper.page.customHeaders = { 
     'X-Apple-Store-Front': headers, 
     'X-Apple-Tz': '3600' 
    }; 
    casper.thenOpen(url, function() { 
     this.wait(2000, function() { 
     var fs = require('fs'); 
     fs.write('asd.html', this.getHTML(), 'wb'); 
     this.capture(filename); 
    }); 
}); 
}); 
casper.run(); 

casperjs screenshot.js --storefront="143441-1,12 ab:SwTTXLh0" --url="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?cc=us&id=37" --filename=tv.jpgCasperJS가 자바 스크립트를로드하지 않으십니까? 이 페이지를 덤프 시도 할 때

, 그것은 나에게 전체 자바 스크립트 회전 목마 또는 아무것도 포기하지 않을거야. 솔직히로드 실패의 원인에 대해 전혀 알지 못하며 누군가 다른 경험이 있다면 궁금해하십니까?

PhantonJS 버전은 2.1.1입니다. CasperJS 버전은 1.1.1입니다.

+0

어떤 PhantomJS 버전을 사용하십니까? 'resource.error','page.error','remote.message' 및'casper.page.onResourceTimeout' 이벤트에 등록하십시오 ([예제] (https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file). -2_caspererrors-js)). 어쩌면 오류가있을 수 있습니다. –

+0

게시물을 업데이트했습니다. 오류 : ITSExceptionHandler : ITSExceptionHandler : {message : "ReferenceError : 변수를 찾을 수 없습니다 : iTunes", url : "https://itunes.apple.com/htmlResources/CBCB/dt-storefront-base.js", lineNumber : "1023"}' 'Error : ReferenceError : 변수를 찾을 수 없습니다 : iTunes' casperjs 버전은 1.1.1입니다. –

+0

PhantomJS도 2.1.1입니다. –

답변

0

저는 같은 문제에 직면하고 있습니다.

  • 는 캐스퍼는로드 할 스크립트로 인해 이상/기존의 userAgent 생략 될 수있다 (실제 HTML에 있는지 this.debugHTML()를 사용하여 해석하는 HTML을 출력 해보십시오 : PhantomJS ticket이에 확인하는 몇 가지가있다)
  • 사용중인 웹킷 버전
  • onResourceRequestedonResourceReceived을 통해 네트워크 트래픽을 조사하여 스크립트가 실제로 요청되고 수신되는지 확인하십시오.

슬프게도이 모든 것이 제 경우에는 괜찮아 보이지만 페이지는 여전히 비어 있습니다. 다른 사람을 도울 수 있기를 바랍니다. 확인할 사항에 대한 다른 정보가 있으면 알려주십시오.