我使用Perl和WWW::Mechanize
模块将表单提交到网页并将结果保存到文件中。我知道如何提交表单并保存数据,但是在这六秒重定向后我无法保存数据。
提交表单后,页面将重定向到显示
的页面Results should appear in this window in approximately 6 seconds...
并将其重定向到具有我想要的结果的页面。我的脚本可以遵循第一个重定向,但不是第二个重定向,并且没有链接说明"如果没有重定向,请点击此处" 。
这是我的剧本
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(autocheck => 1);
$mech->get( "http://tempest.wellesley.edu/~btjaden/TargetRNA2/index.html");
$result = $mech->submit_form(
form_number => 1,
fields => {
text => 'Escherichia coli str. K-12 substr. MG1655',
sequence => '>RyhB' . "\n" .
'GCGATCAGGAAGACCCTCGCGGAGAACCTGAAAGCACGACATTGCTCACATTGCTTCCAGTATTACTTAGCCAGCCGGGTGCTGGCTTTT',
}
);
$mech->save_content(result);
答案 0 :(得分:3)
您需要做的是提取重定向网址并手动运行:
试试这个:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get( "http://tempest.wellesley.edu/~btjaden/TargetRNA2/index.html");
$result = $mech->submit_form(
form_number => 1,
fields =>
{
text => 'Escherichia coli str. K-12 substr. MG1655',
sequence => '>RyhB GCGATCAGGAAGACCCTCGCGGAGAACCTGAAAGCACGACATTGCTCACATTGCTTCCAGTATTACTTAGCCAGCCGGGTGCTGGCTTTT',
}
);
my $content = $mech->content;
my $url1 = 'http://tempest.wellesley.edu/~btjaden/cgi-bin/';
my ($url2) = $content =~ /URL=(targetRNA2\.cgi?.+)?">/;
$mech->get($url1.$url2);
$mech->save_content(result);
答案 1 :(得分:0)
" 6秒"包含下面一行的内容? [您可以使用WWW :: Machenize的save_content
方法将页面保存到文件中]
<meta http-equiv="refresh" content="5; url=http://example.com/">
YES =&GT;
查看WWW::Mechanize::Plugin::FollowMetaRedirect的来源 它显示了WWW :: Mechanize如何遵循meta refresh with redirect 它可能很有可能解决您的问题。