我正在尝试为一个项目构建一个应用程序,该项目将登录到我的银行帐户并计算一堆东西。我正在使用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这样的其他东西来获得我需要的东西?