簡體   English   中英

使用Web上的數據,如何登錄?

[英]Using Data from Web, how to login?

我有一個使用“ Web數據”功能的宏。 我已經登錄了要從中提取數據的網站(在Internet Explorer中)-但是我在Excel中得到的結果只是告訴我我沒有登錄。

是否有通過Excel登錄“來自網絡的數據”的特殊方法? 我知道它是有效的,因為我使用了Macro Recorder來學習Excel如何獲取數據-並手動進行,該網站要求我登錄“ Excel IE瀏覽器窗口” ...但是已經過去了一個多小時,所以我已注銷。 如何再次登錄以使用它?

如果有幫助,請參見以下適用的數據提取代碼(登錄后該網址可以正常運行):

 With ActiveSheet.QueryTables.Add(Connection:="URL;" & theURL, Destination:=webInfoWS.Range("$A$2"))
        .name = cel.Value & " hex"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "3"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With

同時,我發現了一個解決方法(主要是通過該線程 ):

Debug.Print "Opening " & theURL以及With ActiveSheet.QueryTables.Add(...)之前添加此內容

    ''' Log in to the web stuff
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate theURL
        Do Until .READYSTATE = 4
            DoEvents
        Loop
        If Left(.Document.Title, 5) <> "Welcome!" Then
            .Document.all.Item("username").Value = "My User Name"
            .Document.all.Item("password").Value = "MyPassword"
            .Document.forms(0).submit
        End If
      '   .Quit
    End With
    ''''''

這實際上是打開IE窗口,然后(自動)輸入我的用戶名和密碼,然后提交。

但是,如果我再次運行宏(這意味着我已經登錄),這會給我一個錯誤,因為沒有用戶名/密碼輸入表格。

關於如何解決的想法-使用On Error Goto Next ,但我不喜歡使用它,但這可能是最好的選擇。 我想我會改為嘗試獲取Window標題(通過HTML)並檢查是否為登錄表單...

編輯:關於如何知道.Item("____")"username""password".Item("____") 這只是來自HTML Input ID標記:

在此處輸入圖片說明

您會在我發現它的帖子中注意到, .Item()的文本是不同的-我認為是因為HTML ID也不同。

編輯2:這不起作用! 我能夠登錄, IE中看到的網頁,但是當我到達.Refresh BackgroundQuery:=False ,得到的信息是短信說我需要登錄:/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM