wget 如何从提示您单击“同意”条件的网页下载文件

wget 如何从提示您单击“同意”条件的网页下载文件

我想使用 wget 实用程序下载文件。我按照“如何使用 wget/curl 从我登录的网站下载?“并且下载过程正常;但是,保存的 cookie 会在一定时间后过期,因此第二天我无法继续下载文件。

以下是我尝试下载文件的 URL:

https://frbservices.org/EPaymentsDirectory/FedACHdir.txt

下载页面要求我单击“同意”按钮后才能继续下载。

有没有办法将“同意”提交包含在 wget 实用程序中?

谢谢。

答案1

您可以使用 提交表单wget,使用--post-data选项。首先,查看页面使用的表单:

<form name="acceptedForm" id="acceptedForm" action="submitAgreement" method="post">
...
        <button id="agree_terms_use" name="agreementValue" type="submit" value="Agree">Agree</button>  &nbsp; 
        <button id="disagree_terms_use" name="agreementValue" type="submit" value="Do Not Agree">Do Not Agree</button>

通常,属性的值action用于获取目标 URL,该 URL 成为 https://frbservices.org/EPaymentsDirectory/submitAgreementname表单元素的 成为参数。然后您需要保存从接受协议中获得的 cookie。从这篇文章,我们可以构造需要的命令:

wget --post-data="agreementValue=Agree" https://frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookie.txt --keep-session-cookies --delete-after

然后,我们可以使用这些 cookie 来下载文件:

wget --load-cookies=cookie.txt 'https://frbservices.org/EPaymentsDirectory/FedACHdir.txt?AgreementSessionObject=Agree'

相关内容