use WWW::Mechanize qw();
use IO::Socket::SSL qw();
use HTML::TreeBuilder;
use 5.10.0;
use strict;
use warnings;
my $mech = WWW::Mechanize->new(ssl_opts => {
SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
verify_hostname => 0, });
my $url = "scheduleurl";
$mech->get($url);
my $filename = 'out.htm';
my $result = $mech->submit_form(
form_number => 2,
fields =>
{
"ctl00\$ContentPlaceHolder1\$TermDDL" => 2171,
"ctl00\$ContentPlaceHolder1\$ClassSubject" => 'CS',
}
,button => "ctl00\$ContentPlaceHolder1\$SearchButton"
);
$mech->submit();
#print $result->content();
open(my $fhandle, '>', $filename) or die "Could not open file '$filename' $!";
my $tree = HTML::TreeBuilder->new_from_content($result->content);
if (my $div = $tree->look_down(_tag => "div", id => "class_list")){
#print $div->as_text(), "\n";
# say $fhandle $div->as_HTML(),"\n";
my @list = $div->find(_tag => 'ol');
#print Dumper \@list;
foreach (@list) {
say $fhandle $_->as_HTML();
}
}
close $fhandle;
$tree->delete();
####
- CS 128 Section 01
| 11647 |
30 |
| Title |
Introduction to C++ |
Units |
4 |
| Time |
3:00 PM–4:50 PM TuTh |
Building/Room |
8 52 |
...
##
##
{
CS128 Section 01 => {
Class Nbr => 11647,
Capacity => 30,
Title => Introduction to C++,
Units => 4,
Time => 3:00PM- 4:50PM TuTh,
Room => 8 52
}
}