基本的cURL表单交互

时间:2015-03-04 21:39:11

标签: windows forms curl

下午好 -   我有业务需要下载位于@ https://www.frbservices.org/EPaymentsDirectory/FedACHdir.txt的文件。直到上个月,这是一个相当简单的例程。在我的自动化工具中,我使用cURL简单地导航到该URL并输出数据。

然而,美联储最近更改了此网站的功能,因此您现在被重定向到https://www.frbservices.org/EPaymentsDirectory/agreement.html,您需要“同意”某些T& C.我猜测“协议”点击和后续下载可以通过cURL完成,但我不太清楚如何去做。

有什么建议吗?我正在尝试使用在Windows 2012上运行的Automic Automation Engine来实现这一目标。

3 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题,通过3次调用cURL解决了这个问题。关键是两件事:将会话cookie存储在一个文件中并重新提交到协议页面,submitAgreement url以“.do”结尾

注意:我必须用[冒号]替换网址中的“:”,因为声誉不佳(我作为访客发帖)。

curl -c cookies1.txt https://www.frbservices.org/EPaymentsDirectory/FedACHdir.txt

curl --data "agreementValue=Agree" -b cookies1.txt https[colon]//www.frbservices.org/EPaymentsDirectory/submitAgreement.do 

curl -b cookies1.txt https[colon]//www.frbservices.org/EPaymentsDirectory/FedACHdir.txt -o saveroutingnums.txt

答案 1 :(得分:0)

抱歉,我不熟悉Automic Automation Engine,但是当他们更改URL并进行协议检查时,我遇到了完全相同的问题。我不得不更新我公司的perl脚本来处理它。

如果您熟悉perl,可以使用WWW :: Mechanize轻松浏览协议页面。我使用的是Linux,但我相信Windows上的perl代码应该是相同的。

这是我写的测试脚本,$ mech-> content()将包含FedACHdir.txt的内容。在这里,我只是将内容转储到同名的文本文件中。然后,您可以使用您需要的任何其他内容处理该文件。

#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;

my $url = 'https://www.frbservices.org/EPaymentsDirectory/FedACHdir.txt';

my $mech = WWW::Mechanize->new(autocheck => 1);
$mech->get($url);

if($mech->uri() ne $url) {
    $mech->form_name('acceptedForm');
    $mech->click_button(value => 'Agree');
}

#print ($mech->content());

my $filename = 'FedACHdir.txt';
$mech->save_content($filename);

希望这有帮助!

答案 2 :(得分:0)

使用curl for windows这个.bat文件工作:

fetch('bar.svg').then(...)