我通常会使用以下方法保存到文件:
$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/