Python - 下载美联储路由号码

时间:2017-04-09 22:24:26

标签: python request

我是Python新手,我正在努力从FederalReserve网站下载.txt文件,其中包含路由号码列表(ACH)及其相应的金融机构名称。

最大的警告是我必须点击"接受"在到达包含所需的.txt数据的页面之前的按钮。 “协议”按钮和包含.txt数据的页面都链接在我的代码中。我无法列出这两个链接,因为我在这个网站上太新了。

有人可以帮助我吗?

我尝试了多种方法,包括硒,漂亮的肥皂,Firefox中的TamperData,以了解要回发的内容等。

根据我的基本知识,这是我认为应该是最简单的路线,但广泛的尝试和错误尝试:

import webbrowser
import requests

url = 'https://www.frbservices.org/EPaymentsDirectory/agreement.html'
payload = {'agreementValue':'Agree'}

response = requests.get(url, data=payload)
webbrowser.open("https://www.frbservices.org/EPaymentsDirectory/FedACHdir.txt")

1 个答案:

答案 0 :(得分:1)

我使用requestsrequests.Session()做了一些尝试但没有运气,然后转移到PostMan并且仍然无法通过来简化事情。

然后我转换了方法,Mechanize库来救援。

import mechanize
br = mechanize.Browser()
br.open( 'https://www.frbservices.org/EPaymentsDirectory/fpddir.txt' )
br.select_form( name="acceptedForm" )
rs = br.submit( name="agreementValue", nr=0 )
print( rs.get_data() )
  

011000015FRB-BOS BOSTON MABOSTON联邦储备银行Y20040910

     

...

它主要是直接的代码,但这一行很重要:

rs = br.submit( name="agreementValue", nr=0 )

表单有两个提交按钮,一个同意,另一个不同意,但它们都具有相同的名称name="agreementValue"nr=0参数选择第一个匹配并提交该匹配。

提交后,远程站点会自动加载所需的文本文件,并且可以从响应rs.get_data()

中读取