2012-11-13 41 views
3

我有興趣從中提取數據的網頁有一個包含多個搜索字段的表格。我可以將數據輸入到任何這些字段中,然後單擊表格底部的搜索按鈕,然後根據我想要搜索的信息查看結果。如何將HTML可搜索的查詢數據自動化並導出到excel

我想要搜索多個號碼(大約300),而不是單獨搜索這些中的每一個,有沒有一種方法可以自動搜索數據並將數據導入Excel工作表中,以查找每個我想要搜索的數字?

是否有可能使用Excel宏?

+0

你有一些例子,你做了一些測試,一些代碼與我們分享?你如何相信你可以將excel vba與asp.net連接起來?你贏得了什麼部分自動化,因爲編程是他自己的自動化。 – Aristos

+0

答案是:也許。所以請換一句... –

+0

http://www.logisticsinformationservice.dla.mil/BINCS/begin_search.aspx是網站。我想輸入CAGE代碼並生成我擁有的籠形碼列表的結果。 – user1821321

回答

1

您可以爲此使用MSXML和MSHTML庫。這段代碼應該讓你開始。
開始運行這個子就添了兩個引用(你只需要運行一次此):

Sub addReferences() 
    ActiveWorkbook.VBProject.References.AddFromGuid "{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}", 4, 0 
    ActiveWorkbook.VBProject.References.AddFromGuid "{F5078F18-C551-11D3-89B9-0000F81FE221}", 6, 0 
End Sub 

然後編輯getCAGEValues子導入您的CAGE代碼並保存生成的數據(和你想要的任何其他數據從頁面):

Sub getCAGEValues() 
    Dim oHTMLDoc As MSHTML.HTMLDocument 
    Dim oSpan As MSHTML.HTMLGenericElement 
    Dim CAGECodes() As Variant 
    CAGECodes = Array("12345", "12346") 'CAGECodes is an array of your codes' 
    For Each CAGECode In CAGECodes 
     Set oHTMLDoc = getPage(CAGECode) 
     Set oSpan = oHTMLDoc.getElementById("ctl00_cphMainPageBody_lblCompNameData") 'The id for the company name' 
     MsgBox oSpan.innerText 'Save the value however you want to.' 
    Next 
End Sub 

Function getPage(CAGECode As Variant) As MSHTML.HTMLDocument 
    Dim oHttpRequest As MSXML2.XMLHTTP60 
    Set oHttpRequest = New MSXML2.XMLHTTP60 
    With oHttpRequest 
     .Open "GET", "http://www.logisticsinformationservice.dla.mil/BINCS/details.aspx?CAGE=" & CAGECode, False 
     .setRequestHeader "Cache-Control", "no-cache" 
     .setRequestHeader "Pragma", "no-cache" 
     .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" 
     .send 
    End With 
    Dim oHTMLDoc As MSHTML.HTMLDocument 
    Set oHTMLDoc = New MSHTML.HTMLDocument 
    oHTMLDoc.body.innerHTML = oHttpRequest.responseText 
    Set getPage = oHTMLDoc 
End Function 
+0

非常感謝Kevin。這是一些很好的信息! – user1821321