2011-11-28 2 views
0

그래서 내 서버에서 크롤러를 실행 중이며 내 대상 사이트 (크롤링하려는 대상)의 일부 데이터에 액세스하기 위해 javascript를 실행해야합니다. 여기에 문제에 대한 다른 접근 방식에 관한 질문이 있었지만이 대답에 필요하지 않습니다. [Dead]How to successfully POST to an old ASP.NET site utilizing Asynchronous Postback서버에서 컬 사용 - 자바 스크립트 요청을 대상 서버로 리디렉션하는 방법?

내 자바 스크립트가 브라우저에서 실행됩니다. 내 PHP 크롤러를 호출합니다. 문제는 모든 자바 스크립트 요청이 대상 사이트가 아닌 내 자신의 서버에서 대상 지정된다는 것입니다 (대상 사이트가 아닌 내 사이트에서 /index.php와 같은 링크로 연결됩니다).

자바 스크립트 사용 경험이 매우 적고 내 요청을 내 대상으로 리디렉션해야하는지 잘 모르겠습니다. 여기에 내가 전화 한 페이지에서 자바 스크립트 함수의 예입니다

<script type="text/javascript"> 
//<![CDATA[ 
var theForm = document.forms['aspnetForm']; 
if (!theForm) { 
    theForm = document.aspnetForm; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
//]]> 
</script> 

는 ... 그리고 내가 전화하는 방법 :

echo "<SCRIPT language='javascript'>__doPostBack('-254870369', '')</SCRIPT>"; 

이 서버를 앨리어싱의 몇 가지 방법이 있나요 주소를 내 서버에서 대상 서버로 보내거나이 문제를 해결할 수있는 편리한 대안을 만드십시오.

답변

1

타겟에 자바 스크립트를 삽입 할 필요가 없습니다. wireshark을 사용하여 대상에 의한 모든 요청을 연구 할 수 있습니다. Wireshark는 마스터하기가 어렵지만 강력합니다. 대신 의 net 탭을 사용해보세요.

대상이 서버에 요청을 보내고 서버에서 데이터를 수신하는 방법을 알면 curl을 사용하여 요청/수신 데이터를 모방 할 수 있습니다. 크롤러를 만드는 데 더 이상 필요하지 않습니다.

이 질문에 대한 답변을 얻지 못하면 시나리오를 조금 더 설명하십시오.

+0

더 자세히 살펴 봐야 할 것입니다. 나는 Wireshark를 시도했는데 엄청나게 복잡한/지겨운 것 (수백 건의 조사 요청과 내가 뭘 찾고 있는지 몰랐다)처럼 보였다. 나는 그것을 사용하는 방법을 배우는 데 약간의 시간을 할애하면 유용한 도구가 될 것이라고 확신합니다. 그러나 지금은 make-it/break-it point에 있으며 가능한 빨리해야합니다. 나는 hacky fix를 고안하고 나중에 Wireshark에 약간의 시간을 투자해야 할 수도있다. – David

관련 문제