GMP*_*GMP 7 command-line scripts downloads wget
在过去的几年里,我们已经能够FedACH使用该wget实用程序从美联储网站 (frbservices.org)下载文件。下面的链接提供了原始解决方案:
获取饼干:
wget --post-data="agreementValue=Agree" https://frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookie.txt --keep-session-cookies --delete-after
Run Code Online (Sandbox Code Playgroud)下载文件:
wget --load-cookies=cookie.txt 'https://frbservices.org/EPaymentsDirectory/FedACHdir.txt?AgreementSessionObject=Agree'
Run Code Online (Sandbox Code Playgroud)使用此wget命令只会下载,https://www.frbservices.org/EPaymentsDirectory/download.html因为网站要求现在单击“同意”按钮后填写弹出表单。有什么方法可以使用 关闭表单wget吗?
在 IE 和 Chrome 中,执行以下步骤以下载所需的文件:
转到网址:https : //www.frbservices.org/EPaymentsDirectory/FedACHdir.txt
单击同意按钮。
显示请求组织信息的表单。
单击表单上的关闭按钮(我没有填写任何信息)。
转到网址:https : //www.frbservices.org/EPaymentsDirectory/FedACHdir.txt
文件下载成功。
该网站要求您设置两个 cookie:一个有效的JSESSIONID和被abaDataCaptureCookie调用的协议 cookie。第一个可以通过您的第一个wget命令获得,第二个需要手动添加。
获取一个有效的JSESSIONID并将其保存到cookies.txt:
wget --post-data="agreementValue=Agree" frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookies.txt --keep-session-cookies --delete-after
Run Code Online (Sandbox Code Playgroud)添加abaDataCaptureCookie行:
echo -e "frbservices.org\tFALSE\t/EPaymentsDirectory/\tFALSE\t0\tabaDataCaptureCookie\tabaDataCaptureCookie" >>cookies.txt
Run Code Online (Sandbox Code Playgroud)下载文件:
wget --load-cookies cookies.txt frbservices.org/EPaymentsDirectory/FedACHdir.txt
Run Code Online (Sandbox Code Playgroud)我不太确定第一个 cookie 的有效期有多长,但我假设您不会每小时多次下载列表,因此在每次运行时获取一个新的对我来说似乎没问题——毕竟这是故障安全方法。
上述步骤的脚本版本,使用临时文件作为 cookie 文件:
wget --post-data="agreementValue=Agree" frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookies.txt --keep-session-cookies --delete-after
Run Code Online (Sandbox Code Playgroud)
运行此脚本会将FedACHdir.txt当前文件保存到当前目录而不会留下任何内容cookies.txt,如果已经有一个具有此名称的文件,则会wget添加一个数字并将其保存为例如FedACHdir.txt.1.
在解决这个问题时,我在这里找到了很大的帮助:Format of cookies when using wget? · U&L