我目前刚开始使用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();
网站的工作方式,您进入,选择主题区域,然后单击“搜索”。然后根据您在上面的表单中选择的内容填充表格。
我目前专注于让我的脚本从下拉菜单中选择一个选项,点击“搜索”然后复制结果,但是对于一个,我不确定它是否真的有效(它不给我任何错误,但我不确定它在做什么)和两个,我不知道如何查看表中弹出的数据。任何帮助将不胜感激!
答案 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",
...
},
);