gpt4 book ai didi

python - 用 python 抓取一些 ofx 数据

转载 作者:数据小太阳 更新时间:2023-10-29 02:38:08 26 4
gpt4 key购买 nike

我正在尝试使用 http://www.jongsma.org/gc/scripts/ofx-ba.py从 wachovia 获取我的银行帐户信息。运气不好,我决定尝试使用 this example 手动构建一些请求数据。

所以,我有这个文件,我想将其用作请求数据。我们称它为 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&amp;pagename=PFM',
query,
{ "Content-type": "application/x-ofx",
"Accept": "*/*, application/x-ofx"
})
>>> f = urllib2.urlopen(request)

这个命令给我一个 500 和 this traceback .我想知道我的请求有什么问题。

访问没有数据且不关心标题的 url,

>>> f = urllib2.urlopen('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&amp;pagename=PFM')

与访问 that url 产生相同的结果直接,

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&amp;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。您正在阅读的文件包含标题和您应该发送的数据。您需要像现在一样分别提供 header 和数据。

HTTP 错误 403 表示请求是正确的,但服务器拒绝响应它。您是否已经注册并安排了使用您尝试访问的网络服务的许可?如果是这样,在发出请求之前是否需要进行一些身份验证?

关于python - 用 python 抓取一些 ofx 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com