gpt4 book ai didi

perl - 关于 submit() 的 Mechanize 问题

转载 作者:行者123 更新时间:2023-12-04 16:19:43 24 4
gpt4 key购买 nike

我尝试在论坛上环顾四周并在谷歌上搜索答案,但无法弄清楚。在为需要时间进行一些计算的网页提交表单后,Mechanize 是否会等待所有计算完成(即使需要一个小时?)。好像这不会发生。我正在迭代一个子程序,该子程序创建一个 Mechanize 对象并提交一个表单并在计算完成后下载输出文件。但是,我觉得它在没有完成所有这些任务的情况下跳转到循环的下一次迭代,因为有时计算需要很长时间。有没有人有什么建议?谢谢。这是子程序

sub microinspector {
my ($sequence, $folder) = @_;
print STDOUT "subroutine sequence: $sequence\n";
my $browser = WWW::Mechanize->new();
$browser->get("http://bioinfo.uni-plovdiv.bg/microinspector/");
$browser->form_number(1);
$browser->field("target_sequence", $sequence);
$browser->select("Choose an organism : ", "Mus musculus");

$browser->submit();
#print $browser->content();
my @links = $browser->links();

chdir($folder) or die "Cannot chdir to $folder";

foreach my $link (@links) {
#print $link->url();
if( $link->url() =~ /csv$/i ){
my $result = $browser->get( $link->url() );
my $filename = ( $link->url() =~ /\/([^\/]+)$/ )[0];
print "Saving $filename\n";
open( OUT, ">$filename" );
print OUT $result->content();
close( OUT );
}
}
}

最佳答案

WWW::Mechanize可以带一个可选的timeout其构造函数中的参数(以秒为单位指定)(在这种情况下传递给其父类 LWP::UserAgent)。我认为默认值为 180 秒。

尝试增加它,例如:

my $browser = WWW::Mechanize->new(
timeout => 60 * 10, # 10 minutes
);

LWP::UserAgent timeout 上的文档如何处理的特定语义的方法。这主要是如您所料,但以防万一。

关于perl - 关于 submit() 的 Mechanize 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com