WWW ::使用Perl进行机械化

时间:2014-08-29 06:22:25

标签: perl web-crawler www-mechanize

我目前刚开始使用WWW :: Mechanize并且正在使用它来构建一个网络抓取工具,该工具将进入学校网站并提取课程数据,以便我正在建立的网站可以识别冲突。我目前在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 个答案:

答案 0 :(得分:1)

此页面使用Javascript magic。您需要手动发出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",
        ...
    },
);