--- lib/Grep/Source.pm 2007/02/23 21:52:29 88 +++ lib/Grep/Source.pm 2007/02/24 11:16:05 92 @@ -194,15 +194,24 @@ die "no uri" unless ($uri); die "feed is not a Grep::Model::Feed but ", ref $feed unless $feed->isa('Grep::Model::Feed'); - my $mech = WWW::Mechanize->new(); + sub mech_warn { + my $m = shift || return; + warn $m; + } + + my $mech = WWW::Mechanize->new( + cookie_jar => {}, + onwarn => \&mech_warn, + onerror => \&mech_warn, + ); $mech->get( $uri ); $self->save( 'get.html', $mech->content ); - if ( $args->{submit_form} ) { - warn "submit form on $uri\n"; - $mech->submit_form( %{ $args->{submit_form} } ) or die "can't submit form"; + if ( my $form = $args->{submit_form} ) { + warn "submit form on $uri with ", dump( $form ),"\n"; + $mech->submit_form( %$form ) or die "can't submit form ", dump( $form ); $self->save( 'submit.html', $mech->content ); } @@ -249,8 +258,8 @@ my $page_tree = HTML::TreeBuilder->new or die "can't create page tree"; $page_tree->parse( $mech->content ) or die "can't parse page at $page_uri"; - my ( $el,$attr,$value ) = @{ $args->{scrape} }; - my $div = $page_tree->look_down( '_tag', $el, sub { ( $_[0]->attr( $attr ) || '' ) eq $value } ); + ( $el,$attr,$value ) = @{ $args->{scrape} }; + $div = $page_tree->look_down( '_tag', $el, sub { ( $_[0]->attr( $attr ) || '' ) eq $value } ); die "can't find <$el $attr=\"$value\">" unless ($div);