3

我有一个 perl 脚本,它可以浏览网站上的两个表单页面,以便将最终表单提交的结果下载到文件中。这个页面非常大,我宁愿将它直接写入磁盘,而不是将整个内容放在内存中。

这是一个代码片段:

$mech->submit_form(
    form_name => 'search',
    fields      => {
        "srch_recd"    => $cfg{max_rows}, #results per page
    }
);

$mech->save_content( $workdir.$cfg{cachedstones} );

我知道我可以这样做:

$mech->get( $url, ":content_file"=>$tempfile );

为了在使用 get() 时将结果保存到文件中。然而,对 submit_form() 做同样的事情并没有奏效。

我怎样才能让 submit_form() 的结果直接进入一个字段,而不是坐在内存中?

4

1 回答 1

0

来自WWW::Mechanize::FAQ

您还可以使用 get() 的 :content_file 标志将任何内容直接保存到磁盘,它是 LWP::UserAgent 的一部分。

$mech->get( 'http://www.cpan.org/src/stable.tar.gz',
            ':content_file' => 'stable.tar.gz' );

这也适用于 ->post。

于 2013-05-31T20:53:59.900 回答