perl - 直接保存到文件并使用 WWW::Mechanize 获取文件名

标签 perl out-of-memory mechanize

我通常会使用以下方法保存到文件:

$mech->save_content($mech->response->filename);

但是由于一些大文件导致“内存不足”,我必须使用它:

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

如何使用第二种方法获取文件名,还是必须自己创建一个?

我想要在响应对象中返回的文件名:$mech->response->filename。我不想创建自己的文件名。

最佳答案

:content_file 选项 is inherited from LWP::UserAgent并且行为方式相同。您事先并不知道该文件。

可以执行 HEAD 请求来检查文件名,然后执行 GET 请求。

或者,查看 the lwp-download utility随 LWP::UserAgent 一起提供。它正是您所需要的。你可以直接使用它,或者从里面取出你想要的东西。可以将 WWW::Mechanize 对象放入此代码中,其行为与 LWP::UserAgent 完全相同。

关于perl - 直接保存到文件并使用 WWW::Mechanize 获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68635694/

相关文章:

Python重定向表单 Action

perl - 有人了解哈希的质量吗?

c# - 停止线程直到有足够的内存可用

perl - 使用 Perl Mechanize 单击带有 id 但没有名称的按钮

java - 如果Java有垃圾回收,那为什么会出现OutOfMemoryError呢?

c - C 中的分配问题和奇怪的行为

用于从选择列表中选择和提交选项的 Ruby 脚本

带有单行标志的正则表达式命令行

arrays - 什么时候在 Perl 中使用数组而不是散列更好?

perl - 奇怪的 Perl 条件运算符行为