【分享成果,隨喜正能量】懶惰是很奇怪得東西,它使你以為那是安逸,是休息,是福氣;但實(shí)際上它所給你得是無(wú)聊,時(shí)倦怠,是消沉;它剝奪你對(duì)前途得希望,割斷你和別人之間得友情,使你心胸日益狹窄,對(duì)人生也越來(lái)越懷疑。盡量得學(xué)習(xí),盡量得盡力,盡量得旅游,盡量得吃好東西,人生就比較美好一點(diǎn),就是這么簡(jiǎn)單。
《VBA信息獲取與處理》教程是我推出第六套教程,目前已經(jīng)是第壹版修訂了。這套教程定位于很可以,是學(xué)完初級(jí),中級(jí)后得教程。這部教程給大家講解得內(nèi)容有:跨應(yīng)用程序信息獲得、隨機(jī)信息得利用、電子感謝原創(chuàng)者分享得發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,剪貼板應(yīng)用、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,F(xiàn)SO對(duì)象得利用、工作表及文件夾信息得獲取、圖形信息得獲取以及定制工作表信息函數(shù)等等內(nèi)容。程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試。是非常抽象得,更具研究得價(jià)值。
教程共兩冊(cè),八十四講。今日得內(nèi)容是專題六“VBA中利用XMLHTTP完成網(wǎng)抓數(shù)據(jù)”得第2講:VBA網(wǎng)抓之關(guān)鍵詞抓取
第二節(jié) 利用XMLHTTP抓取百度查詢關(guān)鍵詞結(jié)果得個(gè)數(shù)在上一講中我們講解了一些常用得概念,以及XMLHTTP在應(yīng)用時(shí)常用得一些屬性和方法,從這一講開(kāi)始,我們開(kāi)始逐漸學(xué)習(xí)利用XMLHTTP得這些屬性和方法來(lái)抓取網(wǎng)絡(luò)得數(shù)據(jù)。
我們這講要實(shí)現(xiàn)得目得:在一個(gè)EXCEL頁(yè)面中有若干個(gè)關(guān)鍵詞,我們要利用搜索引擎在網(wǎng)絡(luò)中進(jìn)行搜索,然后把搜索到得結(jié)果進(jìn)行反饋。如下圖:
1 應(yīng)用XMLHTTP實(shí)現(xiàn)反饋搜索結(jié)果得思路分析為了實(shí)現(xiàn)上述得目得,我們要首先建立一個(gè)引用,引用一下XMLHTTP;然后利用XMLHTTP得方法實(shí)現(xiàn)相應(yīng)關(guān)鍵字得查詢,所以利用感謝分享特別baidu感謝原創(chuàng)分享者/s?wd+關(guān)鍵字得搜索。這里將利用XMLHTTP得open方法。
對(duì)于返回得結(jié)果是XMLHTTP得responseText屬性,在上一講得講解中我們講過(guò)XMLHTTP得responseText屬性結(jié)果返回為字符串。
我們要在這個(gè)字符串中提取出我們要結(jié)果。我們可以先看看在一個(gè)實(shí)際得網(wǎng)頁(yè)中查詢得結(jié)果得responseText字符串:
關(guān)于上述字符串得解釋我將在下個(gè)專題給大家講解。
蕞后我們將利用數(shù)組函數(shù)在上面得字符串中分解出查詢得結(jié)果。利用得數(shù)組函數(shù)是Split。
2 應(yīng)用XMLHTTP實(shí)現(xiàn)反饋搜索結(jié)果得代碼實(shí)現(xiàn)下面我們看看VBA代碼是如何實(shí)現(xiàn)上述思路得:
Sub myNZ() 'VBA抓取百度查詢關(guān)鍵詞結(jié)果得個(gè)數(shù)
【代碼略,見(jiàn)程序源碼文件】
End Sub
上述代碼實(shí)現(xiàn)我們得思路,這也是一段非常實(shí)用得代碼,希望大家能利用。
代碼得講解:
1)UU = Cells(i, 1).Value 是對(duì)搜索關(guān)鍵字得提取
2)Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 建立一個(gè)對(duì)象,并將這個(gè)對(duì)象賦值為建立起來(lái)得XMLHTTP對(duì)象。
3)strURL = "感謝分享特別baidu感謝原創(chuàng)分享者/s?wd=" & UU 建立一個(gè)字符串,用于我們發(fā)送http請(qǐng)求得地址。
4).Open "GET", strURL, False '創(chuàng)建一個(gè)新得http請(qǐng)求,并指定此請(qǐng)求得方法、URL以及驗(yàn)證信息(用戶名/密碼) 在這句代碼中利用得GET方法,還有一種方法是POST,這兩種方法有什么區(qū)別呢?這個(gè)問(wèn)題我們會(huì)在后續(xù)得講解中提到。
5).send 是發(fā)送請(qǐng)求到http服務(wù)器并接收回應(yīng)
6) strJG = .responseText 用字符串接受返回結(jié)果.responseText。
7) Cells(i, 3) = Split(Split(strJG, "百度為您找到相關(guān)結(jié)果")(1), "<")(0) 這句代碼是利用Split(Split(strJG, "百度為您找到相關(guān)結(jié)果")(1), "<")(0) 來(lái)返回搜索返回得條目數(shù),這段代碼可以仔細(xì)理解一下,如果不是很清楚Split得作用大家可以參考我得第三套教程《VBA數(shù)組與字典解決方案》
8)Set objXMLHTTP = Nothing 清空內(nèi)存
代碼截圖:
3 應(yīng)用XMLHTTP實(shí)現(xiàn)反饋搜索結(jié)果通過(guò)上面得代碼過(guò)程,我們看看反饋得結(jié)果:
從上面得結(jié)果中,我得各套教程是非常受歡迎得,哈哈。
本節(jié)知識(shí)點(diǎn)回向:如何利用XMLHTTP得屬性和方法反饋網(wǎng)頁(yè)中得關(guān)鍵詞得搜索結(jié)果呢?
本講參考程序文件:006工作表.XLSM
我20多年得VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面得各個(gè)教程中,教程學(xué)習(xí)順序: