2012-02-19 4 views
0

서버에서 DIV로 새로운 데이터를로드하기 위해 ajax 요청을 사용하는 웹 사이트의 데이터를 크랩하고 싶습니다.AJAXREQUEST의 데이터 스크랩

AJAXREQUEST = _viewRoot & j_id376 = 나는 웹 사이트에 새로운 데이터를로드 웹 사이트의 버튼을 클릭하면

, 나는 브라우저가 다음 포스트 문자열 만 1 POST 요청을한다는 것을 볼 수있다 j_id376 & javax.faces.ViewState = j_id3 & j_id376 % 3Aj_id382 = j_id376 % 3Aj_id382 &의 valueChanged = 거짓 & AJAX의 %의 3AEVENTS_COUNT 내가 PHP 컬을 사용하여 위의 게시 요청을 수행 할 때 = 1 &

나는 유용한 데이터를 얻을하지 않습니다 .

누군가 이런 종류의 요청에 대해 데이터를 수집하는 방법을 알고 있습니까?

갱신 1은 :

$ch = curl_init ('http://www.website.com'); 
$post_string = 'AJAXREQUEST=_viewRoot&j_id376=j_id376&javax.faces.ViewState=j_id3&j_id376%3Aj_id382=j_id376%3Aj_id382&valueChanged=false&AJAX%3AEVENTS_COUNT=1&'; 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
$output = curl_exec ($ch); 

나는 어떤 결과도 오류없이 또는 메시지를 얻을하지 않습니다

이것은 내가 PHP에서 사용하는 것입니다.

+0

사이트에 모바일 버전이 있습니까? 모바일 버전은 AJAX 요청을 거의 사용하지 않으며 간단한 HTML로 파싱됩니다. 어느 쪽이든 아마 우리에게 약간 더 많은 정보를 주어야 할 것입니다 ... –

+0

사이트는 모바일 버전이 없습니다. 어떤 정보를 추가 할 수 있는지 알 수 없습니다. 이 요청 유형은 ususal POST 또는 GET 요청과 다소 차이가 있으며 이러한 유형의 요청을 처리하는 방법은 없습니다. – BastiaanWW

+0

우리는 실제로 더 많은 정보가 필요합니다. 예 : JS 파일은 더 많은 데이터를 요청합니다. 그리고 위의 URL은 무엇을 반환합니까? –

답변

0

PHP 코드에 문제가있는 것 같지 않습니다. PHP 코드가 실제로 서버에 전송할 가능성이 높습니다. 나는 당신이 상호 작용하려는 서비스에 대한 place holder로 website.com을 열거했다고 추측하고 있지만, 요청을 보내는 곳이나 돌아 오는 곳에 대한 정보를 나열하지 않았으므로 서버로의 게시가 무효이거나 불완전하거나 추가 POST/GET 요청이 필요하기 때문에 무시되는 것입니다. 또 다른 가능성은 인증되지 않은 세션 (세션을 식별 할 수있는 일종의 토큰을 포함 할 수있는 나열된 POST 변수)이 필요한 서비스에 POST를 시도하는 것입니다.

먼저 간단한 "제어 테스트 케이스"에서 코드를 테스트하는 것이 좋습니다. 값을 POST 할 때 true 또는 something을 반환하는 기본 웹 양식을 설정합니다. 먼저 간단한 코드로 테스트하여 POST 코드가 작동하는지 확인하십시오.

그런 다음 LiveHTTPHeaders 또는 Firebug와 같은 디버깅 도구를 사용하여 전체 POST/GET 요청과 서버의 상호 작용을 기록하십시오. 먼저 디버깅 도구로이 상호 작용을 "재생"하여 방법론이 작동 함을 증명하는 것이 좋습니다. 그런 다음 높은 수준에서 수행해야 할 작업을 정확히 알면 PHP 코드에서이 프로세스를 반복하십시오.

다른 사람들이 우리에게 제공 한 정보를 제공 할 수있는 많은 조언은 없습니다.