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(); ####
  1. CS 128 Section 01
    Class Nbr 11647 Capacity 30
    Title Introduction to C++ Units 4
    Time 3:00 PM–4:50 PM   TuTh Building/Room 8 52
  2. ... ##
    ## { CS128 Section 01 => { Class Nbr => 11647, Capacity => 30, Title => Introduction to C++, Units => 4, Time => 3:00PM- 4:50PM TuTh, Room => 8 52 } }