Now that you have the full list, you'd like to follow the link for the "Download as TAB delimited list". In your browser, following the link will lead to a saved file. In the mech, this will be just more content.
If you want to be clever, you can get the filename from the LWP's HTTP::Response and use it as a filename to dump the file.
$browser->follow_link( text_regex => qr/Download as TAB/i );
print $browser->content(); # prints TAB delimited file to STDOUT
$browser->follow_link( text_regex => qr/Download as TAB/i );
if ( my $filename = $browser->res->filename )
{
die "file already exists [$filename]" if -e $filename;
print STDERR "Saving downloaded file to [$filename]\n";
open my $fh, ">", $filename;
print $fh $browser->content;
close $fh;
}
#!env perl
use strict;
use warnings;
use autodie qw/ open close /;
use 5.012;
use WWW::Mechanize;
# create WWW::Mechanize object
# autocheck 1 checks each request to ensure it was successful
my $browser = WWW::Mechanize->new( autocheck => [1] );
# retrieve page
$browser->get('http://www.ncbi.nlm.nih.gov/Traces/wgs/');
#select form to fill based on mech-dump output
$browser->form_number(1);
# fill field 'term' with name of species
$browser->field( 'term', 'Escherichia' );
$browser->field( 'size', 'all' );
# click apply button
$browser->submit('Apply');
my $url = $browser->uri;
print "url: $url\n";
$browser->follow_link( text_regex => qr/Download as TAB/i );
#print $browser->content(); # prints TAB delimited file to STDOUT
if ( my $filename = $browser->res->filename )
{
die "file already exists [$filename]" if -e $filename;
print STDERR "Saving downloaded file to [$filename]\n";
open my $fh, ">", $filename;
print $fh $browser->content;
close $fh;
}
|