note
spazm
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.
<p>
If you want to be clever, you can get the filename from the LWP's [cpan://HTTP::Response] and use it as a filename to dump the file.
<code>
$browser->follow_link( text_regex => qr/Download as TAB/i );
print $browser->content(); # prints TAB delimited file to STDOUT
</code>
<code>
$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;
}
</code>
<c>
#!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;
}
</c>
973851
973896