Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 登录银行网站并通过脚本检查交易的最佳方式?_Python_Windows_Web - Fatal编程技术网

Python 登录银行网站并通过脚本检查交易的最佳方式?

Python 登录银行网站并通过脚本检查交易的最佳方式?,python,windows,web,Python,Windows,Web,我正试图通过登录银行网站并在向客户发放商品之前检查交易来实现业务自动化。我正在尝试使用python来实现这一点。到目前为止,它适用于facebook,我现在正在银行网站上尝试。但我在想,如果网页发生变化,这种方法就不起作用了。有没有其他最佳的方法可以做到这一点?顺便说一句,没有API提供。谢谢您的建议。这是密码 from splinter import Browser #userid user_email = 'username' # takes the password for the u

我正试图通过登录银行网站并在向客户发放商品之前检查交易来实现业务自动化。我正在尝试使用python来实现这一点。到目前为止,它适用于facebook,我现在正在银行网站上尝试。但我在想,如果网页发生变化,这种方法就不起作用了。有没有其他最佳的方法可以做到这一点?顺便说一句,没有API提供。谢谢您的建议。这是密码

from splinter import Browser

#userid
user_email = 'username'

# takes the password for the user account needed
user_pass = 'password'

# loads the firefox broswer
browser= Browser('firefox')

#selects bank as the website to load in the browser (have to load twice  because the bank directs it to the main site for the first time)
browser.visit('https://www.cimbclicks.com.my/wps/portal/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9QJ_89Mw8_YJ0RUUAk9OZqw!!/')
browser.visit('https://www.cimbclicks.com.my/wps/portal/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9QJ_89Mw8_YJ0RUUAk9OZqw!!/')

# fills the userid
browser.fill('userid', user_email)
#still working on the password part (unfinished)
browser.fill('pass', user_pass)

#selects the login button(so far doesn't work. I'm still working on how to click this image, can't find id. works for facebook though)

 button = browser.find_by_id('u_0_n')
 button.click()

您已经发现了web刮取的主要问题。如果前端更改,代码将失败

通常有两种方法可以克服这一问题:

  • 检查您的银行网站是否有您可以使用的API。这些很少改变,如果改变了,大多数大公司(如银行)都会对其API进行版本化,并且仍然允许您使用遗留版本。因此,您的代码永远不必更改

  • 生成检查到您的代码中以进行UI更改。例如,如果您总是希望找到一个id为
    u\u 0\u n
    的HTML元素,而突然所有的刮擦都找不到这个HTML元素,那么您的代码应该会通过电子邮件、IM、系统日志之类的方式提醒您


  • 刮网通常是快速、肮脏的解决方案。在将诸如计费这样的关键问题与诸如网络抓取这样的不稳定技术结合起来之前,先尝试用尽所有其他的可能性

    您已经发现了web抓取的主要问题。如果前端更改,代码将失败

    通常有两种方法可以克服这一问题:

  • 检查您的银行网站是否有您可以使用的API。这些很少改变,如果改变了,大多数大公司(如银行)都会对其API进行版本化,并且仍然允许您使用遗留版本。因此,您的代码永远不必更改

  • 生成检查到您的代码中以进行UI更改。例如,如果您总是希望找到一个id为
    u\u 0\u n
    的HTML元素,而突然所有的刮擦都找不到这个HTML元素,那么您的代码应该会通过电子邮件、IM、系统日志之类的方式提醒您


  • 刮网通常是快速、肮脏的解决方案。在将诸如计费这样的关键问题与诸如网络抓取这样的不稳定技术结合起来之前,先尝试用尽所有其他的可能性

    通常银行都有HBCI等网上银行软件的接口。你应该问问他们。银行应该有这种在线交易的API,而且很可能有。顺便说一句,最好使用支付网关。它们是安全的,而且API太昂贵,无法使用。我必须规定,银行通常有HBCI等网上银行软件的接口。你应该问问他们。银行应该有这种在线交易的API,而且很可能有。顺便说一句,最好使用支付网关。它们是安全的,而且API太昂贵,无法使用。我不得不排除那个选项。谢谢你的答复。银行的API真的很昂贵,它拿走了我60%的利润。所以,我排除了这个选择。除了我的方法(splinter)之外,还有更好的选择吗?您的银行网站是否可以通过电子邮件向您发送交易报告?您可以使用Python来使用这些报告,从而完全消除web抓取。我也想到了这一点,但是有很多网络钓鱼电子邮件,因此我放弃了这个想法。登录并直接检查(bot)会更安全谢谢您的回复。银行的API真的很昂贵,它拿走了我60%的利润。所以,我排除了这个选择。除了我的方法(splinter)之外,还有更好的选择吗?您的银行网站是否可以通过电子邮件向您发送交易报告?您可以使用Python来使用这些报告,从而完全消除web抓取。我也想到了这一点,但是有很多网络钓鱼电子邮件,因此我放弃了这个想法。直接登录和检查会更安全(bot)