#!/usr/bin/perl -w use strict; $|++; use File::Basename; use WWW::Mechanize 0.48; use HTML::TokeParser; use HTML::TreeBuilder; my $mech = WWW::Mechanize->new(); # Get the starting page $mech->get( "http://oasis.auburn.edu/ia-bin/tsrvweb.exe?&WID=W&tserve_tip_write=||WID&ConfigName=rcrssecthp1-l&ReqNum=1&TransactionSource=H&tserve_trans_config=rcrssecthp1-l.cfg&tserve_host_code=HostZero&tserve_tiphost_code=TipZero" ); $mech->success or die $mech->response->status_line; # Select the Term form, fill the fields, and submit $mech->form_number( 1 ); $mech->field( Term => "2005S" ); $mech->click(); $mech->success or die "post failed: ", $mech->response->status_line; my $parser = HTML::TreeBuilder->new_from_content( \$mech->{content} ); my @options = $parser->look_down( _tag => 'option' ); foreach my $option (@options) { my $o = $option->attr('value') ; $mech->form_number( 1 ); $mech->field( Subject => $o ); $mech->click(); $mech->success or die "post failed: ", $mech->response->status_line; my $oparser = HTML::TreeBuilder->new_from_content( \$mech->{content} ); my @courses = $oparser->look_down( _tag => 'option' ); my $mech2 = $mech; foreach my $course (@courses) { my $c = $course->attr('value'); $mech2->form_number( 1 ); $mech2->field( CourseID => $c ); $mech2->click; $mech2->success or die "post failed: ", $mech2->response->status_line; print "\t", $c, "\n"; $mech2->back(); } print $o, "\n"; $mech->back(); }