验证银行帐户使用scrapy

时间:2015-12-26 20:21:46

标签: python scrapy web-crawler

我正在尝试为一个项目构建一个应用程序,该项目将登录到我的银行帐户并计算一堆东西。我正在使用scrapy来做到这一点,但我无法完成日志记录。

关于这一点的奇怪之处在于,首先您需要输入用户名,提交,然后您将被重定向到您输入密码的页面,提交并最终到达您的帐户。

这就是我正在做的事情:

 import scrapy                                                                                                                                               
 2                                                                                                                                                            
 3class LoginSpider(scrapy.Spider):                                                                                                                           
 4    name = 'www.firstmerit.com'                                                                                                                             
 5    start_urls = ['https://www.firstmeritib.com/Default.aspx?ReturnURL=%2fAccountHistory.aspx%3fa%3d1']                                                     
 6                                                                                                                                                            
 7                                                                                                                                                            
 8    def parse(self, response):                                                                                                                              
 9        return scrapy.FormRequest.from_response(                                                                                                            
10            response,                                                                                                                                       
11            formdata={'ctl00$txtUsername': 'valid username'},                                                                                                                 
12                                                                                                              
13            callback = self.after_login                                                                                                                     
14        )                                                                                                                                                   
15                                                                                                                                                            
16    def after_login(self, response):                                                                                                                        
17        # check login succeed before going on                                                                                                               
18        if "User Name:" in response.body:                                                                                                                   
19            self.logger.error("Login failed")                                                                                                               
20            return                                                                                                                                          
21        else:                                                                                                                                               
22            print("you got through!")                                                                                                                       
23            print()    

有问题的网址在那里,如果你想检查一下,但我正在处理这个埋藏了一下 [HTML中的表单。] [1 到目前为止,我还没有完成...那个用户名是一个愚蠢的用户名,但正确而真实的用户应该会到达要求您输入密码的页面,但事实并非如此。

(代码只显示用户名记录部分,而不是密码,我想我以后会担心)

谢谢!

编辑:进一步检查后,我意识到登录按钮包含在:

<div id="divLogin" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'btnLogin')">

这是否意味着它通过Javascript加载下一页,所以我需要使用像Selenium这样的其他东西来获得我需要的东西?

0 个答案:

没有答案