excel - 检查用户是否已经登录,如果是则跳过

标签 excel vba web-scraping

我正在创建网页抓取代码来登录网站并输入一些数据。在到达实际页面之前有一个登录表单。我的代码可以先登录。但是,如果您已经登录,网站不会要求登录。有什么方法可以检查是否需要登录?

这是我的代码:

Sub ChechAutomate()
    Dim ie As New InternetExplorer, url As String, ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Other Data")

    url = "https://infra.com/"

    With ie
        .Visible = True
        .Navigate2 url

        While .Busy Or .ReadyState < 4: DoEvents: Wend

        With .Document
            .querySelector("[name=userName]").Value = "username"
            .querySelector("[name=password]").Value = "password123"
            .querySelector("[type=submit]").Click

            'While .Busy Or .ReadyState < 4: DoEvents: Wend

            .querySelector("[id=companySearchKeyData]").Value = ws.Range("T24").Value
            .querySelector("[type=submit]").Click
        End With

    End With

End Sub

最佳答案

您可以创建条件语句来检查您所在的页面。在这种情况下,以下逻辑可能会有所帮助:

Sub ChechAutomate()
    Dim IE As New InternetExplorer, url As String, ws As Worksheet
    Dim Html As HTMLDocument, idCheck As Object

    Set ws = ThisWorkbook.Sheets("Other Data")

    url = "https://infra.com/"

    With IE
        .Visible = True
        .Navigate2 url
        While .Busy Or .readyState < 4: DoEvents: Wend
        Set Html = .document
    End With

    Set idCheck = Html.querySelector("#login-bis-id-btn")
    If Not idCheck Is Nothing Then
        Html.querySelector("[name=userName]").Value = "username"
        Html.querySelector("[name=password]").Value = "password123"
        Html.querySelector("[type=submit]").Click
        While IE.Busy Or IE.readyState < 4: DoEvents: Wend
    Else:
        Debug.Print "You are already logged-in"
    End If

    'I don't know the role of the following two lines, though

    Html.querySelector("[id=companySearchKeyData]").Value = ws.Range("T24").Value
    Html.querySelector("[type=submit]").Click
End Sub

关于excel - 检查用户是否已经登录,如果是则跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56328773/

相关文章:

javascript - Apple 或 Shellscript |获取属性。图像的类名的 "src"并下载它

vba - 创建在保存前更新字段的宏

python - 如何使用 NBA.com 的数据?

python - 将分组项保存到不同的 Excel 工作表

vba - 我需要引用 ThisWorkbook (Excel VBA)

vba - 计时器函数并通过回调生成事件

python - 如何使用 pandas 从 .xls 文件中读取合并的单元格

vba - 更改连接器样式

vba - 如果路径中不存在附件文件,则不应发送邮件

python - 使用 BeautifulSoup 和 Python 抓取多个页面