PhantomJS를 사용하여 웹 위치를 평가하고 출력을 처리하기 위해 파일에 저장하는 솔루션을 구현하려고합니다. 특히 악의적 인 스크립트를 검사합니다. 필자는 한번 PhantomJS를 사용하여 솔루션을 구현할 수있었습니다. 예를 들어 이것은 내가 지속적으로 오버 헤드의 공정한 조금을 가지고있는 다시 시작해야 PhantomJS을 필요로하지 않습니다 엄청난 어려움을 만들려고하고 자동화 된 시스템이 있었다, 그러나 ... 완벽Phantomjs 프로세스 간 통신
var system = require('system');
var page = require('webpage').create();
var lastReceived = new Date().getTime();
var requestCount = 0;
var responseCount = 0;
var requestIds = [];
var fileSystem = require('fs');
var startTime = new Date().getTime();
page.onResourceReceived = function (response) {
if(requestIds.indexOf(response.id) !== -1) {
lastReceived = new Date().getTime();
responseCount++;
requestIds[requestIds.indexOf(response.id)] = null;
}
};
page.onResourceRequested = function (request) {
if(requestIds.indexOf(request.id) === -1) {
requestIds.push(request.id);
requestCount++;
}
};
page.open('http://adserver.example.com/adserve/;ID=164857;size=300x250;setID=162909;type=iframe', function() {});
var checkComplete = function() {
// We don't allow it to take longer than 5 seconds but
// don't return until all requests are finished
if((new Date().getTime() - lastReceived > 300 && requestCount === responseCount) || new Date().getTime() - startTime > 5000) {
clearInterval(checkCompleteInterval);
console.log(page.content);
phantom.exit();
}
}
var checkCompleteInterval = setInterval(checkComplete, 1);
작동합니다. 명명 된 파이프를 사용하여 읽은 다음 전달 된 URL을 열려고 시도했지만 어떤 이유로 제대로 열리지 않습니다. 나는 이것에 대한 어떤 조언도 감사하고 깊이 감사 할 것입니다.
:
여기에 매우 기본적인 예입니다! –