2014-08-29 2 views
0

저는 현재 WWW :: Mechanize를 처음 사용하고 있으며 학교 웹 사이트로 이동하여 코스 데이터를 가져 오는 웹 스크래핑 도구를 구축하기 위해이 도구를 사용하고 있습니다. 갈등을 인식한다. 현재 Perl에서이 코드를 가지고 있습니다 :WWW :: Mechanize with Perl

#!/user/bin/perl 
use warnings; 
use strict; 
use WWW::Mechanize; 

my $browser = WWW::Mechanize->new; 
$browser->get('https://registrar.ucdavis.edu/courses/search/index.cfm'); 
$browser->form_number(3); #Search Form 
$browser->select('subject', 'AAS'); 
$browser->submit(); 

print $browser->content(); 

웹 사이트 작동 방식, 주제 영역 선택 및 "검색"을 클릭하십시오. 그런 다음 위의 양식에서 선택한 것을 기반으로 테이블이 채워집니다.

저는 현재 드롭 다운 메뉴에서 하나의 옵션을 선택하고 "검색"을 클릭 한 다음 결과를 복사하는 것에 중점을 둡니다.하지만 실제로는 작동하는지 확실하지 않습니다. 나에게 어떤 오류가 발생했는지는 모르겠지만), 두 가지로, 나는 테이블에 올라 오는 데이터를 보는 방법을 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다!

+1

크로스 게시물 : http://perlmonks.com/?node_id= 1098948 –

+0

하하 그래, 네가 내 질문을봤을 때 아마 내 다른 게시물에 닥쳤을거야. 다른 사이트에 게시하여 해당 사이트를 사용하는 사람들이 해결책을 찾았는지 알 수 있습니다. perlmonks의 모든 사람이 스택 오버플로에 있고 그 반대의 경우도 있습니다. – user3875711

답변

1

자바 스크립트 마법이이 페이지에서 사용됩니다. 을 수동으로 요청해야합니다.. 여기

은 (파이어 폭스의 HTTPFox 확장)에서 POST 요청입니다 :

termYear 2014 
term 10 
course_number 
multiCourse 
course_title  
instructor 
subject AAS 
course_start_eval - 
course_start_time - 
course_end_eval - 
course_end_time - 
course_status - 
course_level - 
course_units - 
virtual - 
termCode 201410 
runMe 1 
clearMe 1 
reorder 
gettingResults 0 
search Search 
_cf_nodebug true 
_cf_nocache true 

그리고 여기에 코드입니다 : perlmonks에서

$mech->post("https://registrar.ucdavis.edu/courses/search/course_search_results_mod8.cfm", 
    Content => { 

     termYear => "2014", 
     term => "10", 
     ... 
     subject => "AAS", 
     ... 
    }, 
); 
관련 문제