2014-09-17 3 views
1

나는 펄에서 처음으로 더러운 스카프를 쓰고 있는데 몇 가지 문제가있다. 나는 양식을 제출할 때 항상 포스트 요청이라고 생각했습니다. 그러나 나는이 웹 사이트에서 데이터를 가져오고 싶습니다. 양식이있는 경우에도 메소드 만 가져옵니다. 또한 양식을 제출하는 방법을 모르겠다. 드롭 다운 메뉴를 사용하여 값을 선택하는 필드가 있습니다.스크래퍼 : www를 사용하여 기계화

아무도 도와 줄 수 있습니까? 지금까지 URL에 대한 연결을 설정하고 해당 콘텐츠를 가져 왔습니다. 나는 붙어있다.

use strict; 
use warnings; 

use WWW::Mechanize; 
use Data::Dumper; 

my $homepage = 'http://bacalaureat.edu.ro//'; 
my $source; 

my $browser = WWW::Mechanize->new(); 
$browser->agent_alias('Windows Mozilla'); 
$browser->get($homepage); 

if ($browser->success()) { 
    $source = $browser->content(); 
    print "Page Source: \n\n\n" . $source . "\n\n\n"; 
} else { 
    print "Could not access $homepage! Status: " . $browser->status() . "\n"; 
} 
+0

코드 샘플에는 양식을 제출하려는 시도가 포함되어 있지 않습니다. –

+0

그게 내가 어떻게 해야할지 모르겠다. 나는'submit_form'을 사용해야 만한다는 것을 알고 있지만, 어떻게해야할지 모르겠다. 어떤 매개 변수로 .. – dres

답변

0

양식이있는 페이지를로드하고 입력 요소를 채워 제출해야합니다.

일반적으로 브라우저에로드 한 다음 키보드를 구성하는 것과 같은 코드를 작성합니다.

+0

좋아, 그리고 어떻게 필드의 이름을 볼 수 있고 브라우저에서 양식을 제출할 때 할당되는 값은 무엇입니까? – dres

+0

브라우저의 개발 도구 옵션 사용. 양식 요소를 마우스 오른쪽 버튼으로 클릭하고 'inspect'를 선택하십시오. –

0

이 페이지에는 태그가 없으므로 제출이 없습니다. 이 페이지는 단지 URL로 리디렉션됩니다 : /Pages/JudetRezultAlfa.aspx?jud=$ID$ID의 값입니다. selJud 필드.

그래서 HTML (selJud 값 가져 오기)을 구문 분석하고 $mech->get("http://bacalaureat.edu.ro/Pages/JudetRezultAlfa.aspx?jud=" . $ID)selJud을 사용하여 구문 분석하면됩니다.