forms - perl WWW::Mechanize Submit_form() 直接写入文件?

标签 forms perl www-mechanize

我有一个 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()的结果直接进入字段,而不是坐在内存中?

最佳答案

来自WWW::Mechanize::FAQ

You can also save any content directly to disk using the :content_file flag to get(), which is part of LWP::UserAgent.

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

这也应该适用于 ->post。

关于forms - perl WWW::Mechanize Submit_form() 直接写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863732/

相关文章:

javascript - Ajax 表单提交在第一次提交时返回错误,但在第二次单击时提交

php - 使用 ENCTYPE 处理表单数据

大写 Unicode 的正则表达式与 "Ó"不匹配?

regex - perl 中的 s-/-- 和 s-/\Z-- 是什么意思?

perl - Active perl 机械化错误请求错误

php - 如何在 PHP 中选择 "remember"表单值?

javascript - jquery:在第一次使用表单时运行代码

xml - 如何使用 Perl XML::LibXML 表示默认的空命名空间

perl - 使用 WWW::Mechanize 透明处理 GZip 编码的内容

html - 无法通过包 "links"定位对象方法 "mech"