vba 抓取php网页,用VBA操作网页并抓取数据
問題:
最近老婆讓我給上二年級的孩子做一份生字拼音表(帶聲調),這樣孩子每天就可以讀拼音默寫詞語,也就不需要家長陪在身邊朗讀了。
錄入字母容易解決,但標聲調就不好辦了。我百度了一下,金山詞霸提供了一個網頁工具,輸入漢字可轉換成帶聲調的拼音。那問題來了:現在有八百多個生詞,如果要每一個都這樣查一次然后拷貝粘貼出來,簡直太麻煩了。
方案:
既然拼音也是要錄入到Excel的,那么用VBA來操作網頁,把輸入漢字-->點擊“開始轉換”按鈕-->拷貝轉換結果-->粘貼到Excel等步驟自動化,就省事多了。
代碼:
Private Sub CommandButton1_Click()
Dim IE As Object
Dim i As Integer
i = 1
'打開網頁:創建一個IE對象,然后給一些屬性賦值。Visible是可見性,navigate是網頁地址
Set IE = CreateObject('internetexplorer.application')
With IE
.Visible = True
.navigate 'http://hanyu.iciba.com/pinyin.html'
'等待網頁完全加載
Do Until .ReadyState = 4
DoEvents
Loop
'拷貝漢字到網頁文本框,然后點擊轉換按鈕,并取出轉換結果
Do While Sheets('sheet1').Cells(i 1, 1).Value <> ''
'從IE.Document.all句柄中把頁面上要使用的節點找出來。這里的方法是:
.document.all('source').Value 給以source為ID的文本框賦值
.document.all.tags('img')(1).Click ?點擊圖片集合里的第二張圖片
.document.all('to').Value ?取出以to為ID的文本框內容
.document.all('source').Value = Sheets('sheet1').Cells(i 1, 1).Value
.document.all.tags('img')(1).Click
Do Until .ReadyState = 4
DoEvents
Loop
Sheets('sheet1').Cells(i 1, 2).Value = .document.all('to').Value
i = i 1
Loop
'關閉網頁
.quit
End With
End Sub
代碼解釋:(見注釋)
貼士:
1)VBA只能操作IE瀏覽器,原因就一句話:都是微軟家的產品嘛
2)要先引用Micorsoft Internet Controls
拓展:
你的工作中是否遇到過需要抓取網頁數據的任務呢。。。?
總結
以上是生活随笔為你收集整理的vba 抓取php网页,用VBA操作网页并抓取数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端之 XMLHttpRequest
- 下一篇: python调用matlab环境配置、非