抓住与Python一些OFX数据
题
我试图使用 http://www.jongsma.org/ GC /脚本/ ofx-ba.py 抢从美联银行的银行帐户信息。有没有运气,我决定,我只是尝试手动构建使用这个例子一>
所以,我有这个文件,我想作为请求数据来使用。让我们req.ofxsgml调用它:
FXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRQV1>
<SONRQ>
<DTCLIENT>20071015021529.000[-8:PST]
<USERID>TheNameIuseForOnlineBanking
<USERPASS>MySecretPassword
<LANGUAGE>ENG
<FI>
<ORG>Wachovia
<FID>4309
</FI>
<APPID>Money
<APPVER>1700
</SONRQ>
</SIGNONMSGSRQV1>
<BANKMSGSRQV1>
<STMTTRNRQ>
<TRNUID>438BD6F4-2106-4C88-8DE5-7625915A2FC0
<STMTRQ>
<BANKACCTFROM>
<BANKID>061000227
<ACCTID>101555555555
<ACCTTYPE>CHECKING
</BANKACCTFROM>
<INCTRAN>
<INCLUDE>Y
</INCTRAN>
</STMTRQ>
</STMTTRNRQ>
</BANKMSGSRQV1>
</OFX>
然后,在python,我尝试:
>>> import urllib2
>>> query = open('req.ofxsgml').read()
>>> request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM',
query,
{ "Content-type": "application/x-ofx",
"Accept": "*/*, application/x-ofx"
})
>>> f = urllib2.urlopen(request)
此命令给我500和此回溯。我不知道什么是错我的要求。
访问没有数据的URL和用于标头中没有关注,
>>> f = urllib2.urlopen('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM')
产生同样的事情访问该网址直接,
HTTPError: HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>.
这是很明显的,但只是一个观察。关于这个问题的一切都似乎是相当过时。希望写一个简单的python OFX模块开源。也许已经有发展,我没有设法找到的东西吗?
修改强> - 如果我使上述信息的平坦映射:
d = {'ACCTID': '10555555',
'ACCTTYPE': 'CHECKING',
'APPID': 'Money',
'APPVER': '1700',
'BANKID': '061000227',
'DTCLIENT': '20071015021529.000[-8:PST]',
'FID': '4309',
'INCLUDE': 'Y',
'LANGUAGE': 'ENG',
'ORG': 'Wachovia',
'TRNUID': 'I18BD6F4-2006-4C88-8DE5-7625915A2FC0',
'USERID': 'm48m40',
'USERPASS': '12397'}
和然后用urlencode它,使与作为数据的请求
query=urllib.urlencode(d)
request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM',
query,
{ "Content-type": "application/x-ofx",
"Accept": "*/*, application/x-ofx"
})
f = urllib2.urlopen(request)
HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>
解决方案
可以只被认证? (或其缺乏?)
其他提示
但问题是,你以前在数据传递从文件直接作为数据参数的Request
。你读的文件包含标题,您应该可以发送数据。你需要分别提供头文件和数据,你现在已经完成。
HTTP错误403意味着请求被正确的,但该服务器拒绝回应。你是否已经注册了,并安排使用您尝试访问Web服务的权限?如果是的话是有一些认证,你需要发出请求之前做?
不隶属于 StackOverflow