2014-08-29 121 views
0

我目前是新來使用WWW :: Mechanize,並使用它來建立一個網絡抓取工具,將進入學校網站,並拉動課程數據,以便我建立的網站可以承認衝突。目前,我有這個代碼在Perl:WWW ::機械化與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

交叉後在perlmonks:http://perlmonks.com/?node_id= 1098948 – 2014-08-29 08:24:41

+0

哈哈是的,當你使用我的問題時,你可能會碰到我的另一篇文章。以爲我可能會在另一個網站上發帖,看看使用該網站的人是否有解決方案。 perlmonks上的每個人都不是堆棧溢出,反之亦然。 – user3875711 2014-08-29 08:46:38

回答

1

本頁面使用Javascript魔術。您需要手動發出POST請求

這裏是POST請求(從Firefox的HTTPfox擴展程序進行):

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 

這裏是代碼:

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

     termYear => "2014", 
     term => "10", 
     ... 
     subject => "AAS", 
     ... 
    }, 
);