2011-11-23 2 views
1

테이블을 가져 오려는 몇 가지 요소 만 포함 된 매우 간단한 웹 사이트가 있습니다. 이전에이 정확한 목적을 위해 file_get_contents ('http://www.example.com')를 사용하고 explode 및 str_replace 명령을 통해 필요한 정보를 추출하여 정상적으로 작동했습니다.POST 데이터가 필요한 사이트에서 데이터를 가져 오는 중입니까?

그러나 이 웹 사이트는 필요한 테이블을 표시하기 전에 POST 데이터가 필요합니다. 데이터를 제출할 선택 상자의 이름과 ID뿐 아니라 제출해야하는 '옵션 값'도 알고 있습니다.

또 다른 것은 첫 번째가 테이블에 한 번만 옵션이 모두 선택되어 나타납니다 훨씬처럼 처리 된 후 두 번째 선택 상자 만 나타납니다 것입니다.

테이블을 가져 오는 방법은 무엇입니까?

미리 감사드립니다.

추상 (가난한) 테이블 서빙 사이트의 표현 :

<select id='select_box_1' name='first select box'> 
     <option value='option1_1'>Thing one</option> 
     <option value='option1_2'>Second thing</option> 
     <option value='option1_3'>Thing number three</option> 
    </select> 

    NOTE: Selecting an option will spawn: 

    <select id='select_box_2' name='second select box'> 
     <option value='option2_1'>First thing</option> 
     <option value='option2_2'>Second choice</option> 
     <option value='option2_3'>The third option</option> 
    </select> 

    NOTE: Selecting an option will spawn the table I need. 

답변

3

curl으로 시도 :

Here

+0

감사합니다. (참고 사항 :)이 웹 페이지에서는 POST 요청에 컬을 사용하는 방법에 대해 자세히 설명합니다. http://www.html-form-guide.com/php-form/php-form-submit.html – Chris

1

내 생각 엔 사이트 당신이 있다는 것입니다 몇 가지 예를 스크래핑을 시도하는 것은 두 번째 선택을 채우거나 표시하기 위해 POST 후에 세션의 첫 번째 선택 값을 저장하는 것입니다. 즉, 단일 요청으로는이 작업을 수행 할 수 없습니다.

POST 및 세션/쿠키를 지원하는 PHP HTTP 클라이언트를 사용해야합니다. ZendFramework의 Zend_Http_Client 모두를 지원하므로 좋은 후보입니다.

+0

감사합니다. 귀하의 회신. 페이지가 세션을 사용하는지 알아낼 수있는 방법이 있습니까? – Chris

관련 문제