技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 22799
|
本帖最后由 roych 于 2014-12-24 15:51 編輯
前段時(shí)間在處理些網(wǎng)頁抓取的問題,順帶發(fā)一個(gè)模塊給大家。
說明:這里是使用了類名(Class)來抓取,返回字符串后,可以使用split函數(shù)切分為數(shù)組再寫入表字段位置。
1、如需要多頁抓取,則需要寫循環(huán),詳見附件。
2、由于異步情況下,HTML元素返回值跟頁面顯示不一致,因此不支持ajax。
- '*******************************************************************************************************************
- '網(wǎng)頁抓取數(shù)據(jù)主程序,獲取包含以冒號隔開的某個(gè)類的網(wǎng)頁元素標(biāo)識的文本字符串。
- '編寫:東東
- '日期:2014-11-18
- '使用說明:需引用HTML庫和互聯(lián)網(wǎng)控件庫(Internet Control)。
- 'wb:WebBrowser組件,返回Object
- 'strURL:URL地址,字符串類型
- 'strClassName:類名稱,字符串類型
- 'isID:是否獲取寶貝ID,布爾值類型
- '如:myData(Me.Webbrowser0,"http://www.Tmall.com,"DIV",False)
- '*******************************************************************************************************************
- Function myData(ByVal wb As WebBrowser, ByVal strURL As String, ByVal strClassName As String, Optional ByVal isID As Boolean=False)
- Dim doc As HTMLDocument
- Dim eles As IHTMLElementCollection
- Dim ele As IHTMLElement
- Dim str As String
- wb.Navigate strURL
- Do Until wb.ReadyState = READYSTATE_COMPLETE
- DoEvents
- Loop
- Set doc = wb.Document
- Set eles = doc.getElementsByClassName(strClassName)
- For Each ele In eles
- If isID Then
- str = str & ":" & Right(ele.getAttribute("href"), 11)
- Else
- str = str & ":" & ele.innerText
- End If
- Next
- myData = str
- End Function
復(fù)制代碼 ****************************************************
2014-12-24更新:應(yīng)7樓的要求,以論壇帖子為數(shù)據(jù)源,附上實(shí)例。
****************************************************
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊
x
|