2011-11-30 15 views
1

웹 사이트를 크롤링하는 스크립트를 만들고 해당 페이지에 표시된 모든 배너의 위치를 ​​반환해야합니다.자바 스크립트 인식 크롤러 만들기

배너의 위치는 대부분 알려진 도메인에서 나옵니다. 그러나 배너는 쉬운 이미지 또는 swf 파일로 HTML에 포함되어 있지 않습니다. 대부분의 경우 자바 스크립트가 배너를 표시하는 데 사용됩니다.

.swf 파일 또는 이미지 파일이 배너 도메인에서로드 된 경우 해당 URL을 반환해야합니다.

그럴 수 있습니까? 어떻게 내가 그걸 대략 할 수 있니?

해당 광고의 방문 페이지를 반환 할 수도 있습니다. 어떻게 해결할 수 있을까요?

+0

PHP는 JavaScript를 평가하지 않으므로 http://stackoverflow.com/questions/5555930/is-there-any-java-script-web-crawler-framework에서 더 나은 답변을 찾을 수 있습니다. – Gordon

+0

맞습니다. 자바 스크립트 프레임 워크가 필요합니다. 그러나 배너 광고를 필터링하는 방법은 무엇입니까? – KlaasVaak

답변

2

셀렌을 사용하여 실제 브라우저에서 페이지를 연 다음 DOM에 액세스 할 수 있습니다.

PhantomJS도 한 번해볼만한 가치가 있습니다. WebKit (Chrome, Safari 등의 엔진 뒤에 있음)의 헤드리스 버전입니다. 그러나

, 그 해결책으로는 순수 PHP는 없다 - 그 요구 사항 인 경우에, 당신은 아마 PHP에서 자신의 자바 스크립트 엔진 작성해야 (내가 내 최악의 적에게 줄 아무것도))

+0

감사합니다. PHP가 제대로 작동하지 않을 것이라는 점, 자바 스크립트 프레임 워크에 중점을 둘 것입니다. 그러나 실제로 사용 된 배너를 표시하는 방법은 무엇입니까? – KlaasVaak

0

JavaScript의 출력을 얻으려면 JavaScript 엔진 (예 : Google의 V8 엔진)이 필요합니다. V8 엔진은 C++로 작성되었지만 embed the V8 engine into PHP을 알려주는 리소스가 있습니다.

이렇게 말하면 출력물을 "손으로"연구하고 정확히 긁을 수있는 부분과 식별 할 수있는 방법을 결정해야합니다. 광고 배너에 대한 일반적인 구문을 확인한 후에는 배너와 참조되는 방문 페이지를 추출하는 스크립트를 작성할 수 있습니다.

이것은 쉬운 일이 아니지만 수집하려는 광고의 예가 있으면 더 많은 조언을 제공 할 수 있습니다.

관련 문제