문제

페이지의 소스 코드에서 설정 한 일부 JavaScript 객체 변수를 기반으로 1x1 픽셀을 렌더링하는 코드 (우연히도 Omniture SiteCatalyst)가 있습니다. JavaScript는 결국 스크립팅 코드를 기반으로 IMG를 생성하지만 IMG SRC는 HTML에 하드 코딩되지 않았습니다. 페이지의 URL이 주어지면 IMG SRC가 무엇인지 어떻게 알 수 있습니까? 페이지를 잡으면 사전 렌더링 된 JavaScript를 얻을 수 있습니다.

편집하다

예를 들어,이 코드가 있다고 가정 해 봅시다. stackoverflow.html:

<html>
<script type="text/javascript">
a = 2
document.write(a)
</script>
</html>

어떻게 가져올 수 있습니까? stackoverflow.html 그리고 어떻게 든 모든 스크립팅 코드 대신 값 "2"를 얻습니까?

감사!

도움이 되었습니까?

해결책 4

이 작업을 수행하는 가장 좋은 방법은 셀레늄을 사용한 다음 페이지에 일부 JavaScript를 주입하여 DOM을 채굴하거나 적절한 경우 Window Global에서 값을 검색합니다.

다른 팁

가치를 얻으려고한다면 a 스크립트가 클라이언트 측에서 실행되면 (예 : 브라우저에서) 정상적인 방식으로 검색 할 수 있어야합니다.

다음 설정을 수행하십시오.

index.html

이 파일은 웹 페이지입니다. 일부 내용, 이미지를 삽입하는 추적 스크립트 및 자신의 스크립트가 포함되어 있습니다.

<!doctype html>
<html>
<head><title>My Page</title></head>
<body>
  <p>My Content<p>
  <!-- Start tracking code -->
  <script src="tracking.js"></script>
  <!-- End tracking code -->
  <script src="mycode.js"></script>
</body>
</html>

Tracking.js

이것은 아마도 추적 회사가 제공 한 추적 코드입니다.

var id = '1234foobar';
var visitorUserAgent = encodeURIComponent(navigator.userAgent);
document.write(
  '<img src="http://tracking.com/1x1.gif?id='
  + id + '&ua=' + visitorUserAgent + '" />'
);

mycode.js

추적 코드가 어떤 변수 (있는 경우)를 알고 있다면 변수 자체 또는 최소한 변수를 검색 할 수 있어야합니다. src 의 속성 img 추적 코드가 생성하는 태그.

var imgs = document.getElementsByTagName('img');
alert([id, visitorUserAgent, imgs[imgs.length - 1].src].join('\n'));

편집하다:

당신의 재조정 된 질문에 답하기 위해 :

JS가 실행 된 후 페이지가 어떻게 보일지 알아내는 것 같습니다.

이 작업을 수행하는 간단한 방법은 100% 정확한 결과를 제공 할 수있는 간단한 방법이 없습니다. 실제로 JavaScript를 실행하고 결과가 무엇인지 확인해야합니다. 브라우저에있을 때는 실제로는 그렇지 않습니다.

이제 몇 가지 옵션이 있습니다. 페이지를 잡기 위해 어떤 도구를 사용하고 있는지 언급하지 않았으며, 맞춤형 구축 스크레이퍼를 사용하고 있다고 가정합니다. Scarper를 계속 사용하려면 다음을 수행 할 수 있습니다.

  • Rhino를 사용하여 JS를 평가하십시오. 이것이 당신에게 무엇을 줄 것인지 잘 모르겠습니다. 이것을 조사 할 수 있습니다.
  • Document.Write가 귀하가 신경 쓰는 유일한 전화 인 경우 사용하는 변수를 구문 분석 한 다음 해당 값을 평가할 수 있습니다. 이것은 파서를 작성해야 할 것입니다.
  • 당신이 할 수있는 가장 좋은 방법은 Tellurium 또는 Selenium과 같은 기능 테스트 도구를 사용하는 것입니다. 이렇게하면 JS가 이미 실행 한 페이지에 액세스 할 수 있으며 원래 답변을 사용하여 필요한 값을 얻을 수 있습니다.

Firebug의 네트 패널을 사용하고 이미지 요청에 따라 필터를 사용합니다. 당신은 그것이 만들어지는 순간에 나가는 것을 볼 수 있습니다. 또한 분석 요청을하는 경우 설치하십시오. Omnibug Firebug 플러그인이 요청을 추적하고 분류합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top