我正在尝试通过VBA登录此网页:
Sub scraping()
Dim IE As Object
Dim UserName As String
Dim Password As String
Dim LogonForm As HTMLFormElement
Dim SubmitInput As HTMLInputElement
UserName = "XXXXXXXXx"
Password = "XXXXXXXXX"
With Session
Set IE = New InternetExplorer
With IE
.Navigate "https://www.unicajabanco.es/PortalServlet?pag=1110902071492&menu0=particulares"
.Visible = True
Do Until (.READYSTATE = 4 And Not .Busy)
DoEvents
Loop
Set LogonForm = .document.datos
With LogonForm
.user.Value = UserName
.clave.Focus
.clave.Value = Password
For Each SubmitInput In .getElementsByTagName("INPUT")
If InStr(SubmitInput.getAttribute("alt"), "de Banca") Then
SubmitInput.Click
Exit For
End If
Next
End With
End With
End With
End Sub
但是,使用id="clave"
的输入具有一个虚拟键盘以输入密码。
我尝试使用.clave.Value = Password
填充clave
输入,但是当我单击ENTRAR
按钮时,未识别密码。是我单击了ENTRAR
按钮,而clave
输入中没有任何值。
我也尝试过此代码,但它不起作用:
For Each SubmitInput In .getElementsByClassName("tecla")
If InStr(SubmitInput.getAttribute("onclick"), "W") Then
SubmitInput.Click
Exit For
End If
Next
和
For Each SubmitInput In .getElementsByTagName("div")
If InStr(SubmitInput.getAttribute("onclick"), "W") Then
SubmitInput.Click
Exit For
End If
Next
如果我能获得一些帮助输入密码并提交表格的帮助。
这是银行网站,它具有额外的安全功能,可以保护其用户免受黑客攻击。
如果您检查了页面源,则通过将其写入页面而不是在实际的HTML中写入页面来创建某些HTML - 您的clave
输入就是一个示例。
document.write('<input id="clave" class="campo" name="clave" maxlength="8" onBlur="blurVirtualKeyBoard(); if (this.value=='') datos.tipoTeclado.value='';" onClick="if (this.value=='') datos.tipoTeclado.value='';" onFocus="focusVirtualKeyBoard(this,'acceso-usuario',200,100);" readonly type="password"/>');
请注意,<input>
具有readonly
属性。因此,尝试直接设置<input>
的值,除非您尝试删除属性。
某些人或许多人会认为试图删除此属性是可疑行为,因为鉴于网络搭配或自动化可能是合法的 - 尤其是在银行网站上;)
)如果您进一步检查页面源,您将看到单击<input>
中的单击启动一个称为acceso-usuario
的脚本。您可以尝试按照该代码作为下一步的操作。