百度關鍵詞抓取工具_VBA利用XMLHTTP抓取百度查詢關鍵詞結果的個數

大家好,我們今日講解"利用XMLHTTP抓取百度查詢關鍵詞結果的個數",這節內容是"VBA信息獲取與處理"教程中第六個專題"VBA中利用XMLHTTP完成網抓數據"的第二節。

第二節 利用XMLHTTP抓取百度查詢關鍵詞結果的個數

在上一講中我們講解了一些常用的概念,以及XMLHTTP在應用時常用的一些屬性和方法,從這一講開始,我們開始逐漸學習利用XMLHTTP的這些屬性和方法來抓取網絡的數據。

我們這講要實現的目的:在一個EXCEL頁面中有若干個關鍵詞,我們要利用搜索引擎在網絡中進行搜索,然后把搜索到的結果進行反饋。如下圖:

5c5cc531d3f9c1ebfbbc6ca55d25e693.png

1 應用XMLHTTP實現反饋搜索結果的思路分析

為了實現上述的目的,我們要首先建立一個引用,引用一下XMLHTTP;然后利用XMLHTTP的方法實現相應關鍵字的查詢,所以利用+關鍵字的搜索。這里將利用XMLHTTP的open方法。

對于返回的結果是XMLHTTP的responseText屬性,在上一講的講解中我們講過XMLHTTP的responseText屬性結果返回為字符串。

我們要在這個字符串中提取出我們要結果。我們可以先看看在一個實際的網頁中查詢的結果的responseText字符串:

00db04c9cef089a34901759752f22476.png

關于上述字符串的解釋我將在下個專題給大家講解。

最后我們將利用數組函數在上面的字符串中分解出查詢的結果。利用的數組函數是Split。

2 應用XMLHTTP實現反饋搜索結果的代碼實現

下面我們看看VBA代碼是如何實現上述思路的:

Sub myNZ() 'VBA抓取百度查詢關鍵詞結果的個數

Dim objXMLHTTP As Object

Sheets("SHEET1").Select

i = 2

Do While Cells(i, 1) <> ""

UU = Cells(i, 1).Value

'XmlHttp是可以在腳本語言中通過http協議傳送或從接收XML及其他數據的一套API。

'XmlHttp最大的用處是可以更新網頁的部分內容而不需要刷新整個頁面。

Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

With objXMLHTTP

strURL = "https://www.baidu.com/s?wd=" & UU

'創建一個新的http請求,并指定此請求的方法、URL以及驗證信息(用戶名/密碼)

.Open "GET", strURL, False

'發送請求到http服務器并接收回應

.send

'responseText 屬性是將響應信息作為字符串返回.只讀

strJG = .responseText

End With

Cells(i, 2) = "百度 " & UU & " 結果個數為:"

Cells(i, 3) = Split(Split(strJG, "百度為您找到相關結果")(1), "

Set objXMLHTTP = Nothing

i = i + 1

Loop

MsgBox "OK!"

End Sub

上述代碼實現我們的思路,這也是一段非常實用的代碼,希望大家能利用。

代碼的講解:

1)UU = Cells(i, 1).Value 是對搜索關鍵字的提取

2)Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 建立一個對象,并將這個對象賦值為建立起來的XMLHTTP對象。

3)strURL = "https://www.baidu.com/s?wd=" & UU 建立一個字符串,用于我們發送http請求的地址。

4).Open "GET", strURL, False '創建一個新的http請求,并指定此請求的方法、URL以及驗證信息(用戶名/密碼) 在這句代碼中利用的GET方法,還有一種方法是POST,這兩種方法有什么區別呢?這個問題我們會在后續的講解中提到。

5).send 是發送請求到http服務器并接收回應

6) strJG = .responseText 用字符串接受返回結果.responseText。

7) Cells(i, 3) = Split(Split(strJG, "百度為您找到相關結果")(1), "

8)Set objXMLHTTP = Nothing 清空內存

代碼截圖:

e6bc53216c9e40222f6ac36312ddb644.png

3 應用XMLHTTP實現反饋搜索結果

通過上面的代碼過程,我們看看反饋的結果:

13cd4eb48be8d749f1d0acc6cc94db78.png

從上面的結果中,我的各套教程是非常受歡迎的,哈哈。

本節知識點回向:如何利用XMLHTTP的屬性和方法反饋網頁中的關鍵詞的搜索結果呢?

本講參考程序文件:006工作表.XLSM

abc61ea100e650d5b08f243f39d98e6d.png

VBA是利用Office實現自己小型辦公自動化的有效手段,這是我對VBA的應用界定。在取代OFFICE新的辦公軟件沒有到來之前,誰能在數據處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!學習VBA是個過程,也需要經歷一種枯燥的感覺,如太白詩云:眾鳥高飛盡,孤云獨去閑。相看兩不厭,只有敬亭山。

"水善利萬物而不爭",綿綿密密,微則無聲,巨則洶涌。學習亦如此,知道什么是自己所需要的,不要蜷縮在一小塊自認為天堂的世界里,待到暮年時再去做自欺欺人的言論。要努力提高自己,用一顆充滿生機的心靈,把握現在,這才是進取。越是有意義的事情,困難會越多。愿力決定始終,智慧決定成敗。不管遇到什么,都是風景。看淡紛爭,看輕得失。茶,滿也好,少也好,不要計較;濃也好,淡也好,其中自有值得品的味道。去感悟真實的時間,靜下心,多學習,積累福報。而不是天天混日子,也不是天天熬日子。在后疫情更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。學習時微而無聲,利用時則巨則洶涌。

我記得20年前自己初學VBA時,那時的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重復我之前的經歷,我根據自己多年VBA實際利用經驗,推出了六部VBA專門教程。

第一套:VBA代碼解決方案 是VBA中各個知識點的講解,覆蓋絕大多數的VBA知識點,初學必備;

第二套:VBA數據庫解決方案 數據庫是數據處理的專業利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,適合中級人員的學習。

第三套:VBA數組與字典解決方案 數組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學習,是初級及中級人員代碼精進的手段。

第四套:VBA代碼解決方案之視頻 是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。

第五套:VBA中類的解讀和利用 這是一部高級教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。

第六套教程:《VBA信息獲取與處理》是一部高級教程,涉及范圍更廣,實用性更強,面向中高級人員。教程共二十個專題,包括:跨應用程序信息獲得、隨機信息的利用、電子郵件的發送、VBA互聯網數據抓取、VBA延時操作,剪切板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數等等內容。如需要可以可以WeChat: NZ9668

學習的過程也是修心的過程,修一個平靜的心。在代碼的世界中,心平靜了,心情好了,身體自然而然就好。心靜則正,內心里沒有那么多邪知邪見,也就沒有那么多妄想。利人就是利己。這些教程也是為幫助大家起航,助上我自己之力,我的上述教程是我多的經驗的傳遞,大家可以根據以上資料1,3,2,6,5或者是4,3,2,6,5的順序逐漸深入的逐漸學習。

7a7d93879d8f4c4e4e9b3d2cd388605d.png

每一分收獲都是成長的記錄,怎無憑,正是這種執著,成就了朝霞的燦爛。最后將一闕詞送給致力于VBA學習的朋友,讓大家感受一下學習過程的枯燥與執著:

浮云掠過,暗語無聲,

唯有清風,驚了夢中啼鶯。

望星,疏移北斗,

奈將往事雁同行。

阡陌人,昏燈明暗,

忍顧長亭。

多少VBA人,

暗夜中,悄聲尋夢,盼卻天明。

怎無憑!

分享成果,隨喜正能量

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260208.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260208.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260208.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多系統通訊-DotNetMQ

很久都沒有寫博客了&#xff0c;從15年4月份一直忙到現在&#xff0c;我才有時間去做梳理和總結&#xff0c;因為我提離職了&#xff0c;感覺整個世界突然變得不一樣&#xff0c;隨著而來的就是心情的放松&#xff0c;寫一篇文章也是對過去一年多工作的梳理&#xff0c;加深印象…

九大現代病!中槍了嗎?

現代人在享受現代化的生活和工作方式帶來的便捷之時&#xff0c;也為此付出了不小的代價&#xff0c;下面列出的九大現代病就是典型的例子&#xff0c;看看你有沒有中槍。 辦公臀 常坐辦公室&#xff0c;如果你發現屁股越坐越大&#xff0c;大腿越坐越粗&#xff0c;你可能有了…

Java學習筆記(4)——枚舉類型

1.在類別&#xff08;Class&#xff09;或接口&#xff08;Interface&#xff09;中宣告常數加以管理&#xff0c;這只是讓您存取與管理常數方便而已&#xff0c;來看看這個例子&#xff1a; public void someMethod() {....doOp(OpConstants.TURN_RIGHT);.... } public void d…

驅動提取軟件_深入分析施耐德工控軟件代碼執行漏洞

更多全球網絡安全資訊盡在邑安全簡介在本文中&#xff0c;我們將為讀者詳細介紹Claroty Research團隊的Amir Preminger和Sharon Brizinov是如何組合利用兩個漏洞&#xff0c;來觸發施耐德工控軟件EcoStruxure Operator Terminal Expert的代碼執行漏洞&#xff0c;從而在首屆舉辦…

ubuntu 網卡突然無法連接

今天要用到VM BT的Namp掃描服務器端口&#xff0c;發現橋接后無法使用。ifconfig 只看到 lo地址&#xff0c;看不到以太網網卡地址使用lspci 查看是否安裝了以太網網卡驅動lscpi | grep Ethernet02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LA…

atitit.表單驗證 的dsl 本質跟 easyui ligerui比較

atitit.表單驗證的dsl 本質跟 easyui ligerui比較 1. DSL 聲明驗證 1 2. 自定義規則 1 3. 正則表達式驗證,可以擴展實現 2 4. 犯錯誤消息提示,generic canBeEmpty is good 3 5. Prevent the form to submit when invalid 3 6. 為空則不驗證&#xff0c;不為空則驗證&#xff0…

StartActivityForResult

StartActivity 用startActivityForResult(intent, requestcode);啟動子功能模塊activity onActivityResult(int requestCode, int resultCode, Intent data)對子activity返回進行判斷處理 public class StartActivity extends Activity implements OnClickListener {private Bu…

micropython 串口寫文件_MicroPython通過2G模塊串口收發短信

集成2G通信、定位模組&#xff0c;賦予物聯網特性。本例使用M6220&#xff0c;它是一款基于eSIM技術的2G模組&#xff0c;支持GSM/GPRS&#xff0c;提供GPS北斗雙模定位功能&#xff0c;并具備一定的數據處理能力&#xff0c;其2G工作頻段有GSM850、GSM900、DCS1800和PCS1900&a…

洛谷P1130 紅牌

題目描述 某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當復雜 &#xff0c;一共包括N個步驟。每一步驟都由政府的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快進程&#xff0c;每一步政府都派了M個工作人員來檢查材料。不幸的是&#xf…

GPS坐標換算

30.8872 》——>300.8872*60 53.232 ——>530.232*60 13.9230: 53 13.92"30: 53 13.92"》3053/6013.92/360030.887199同經度兩點之間距離dla30.887m * [差值/(1/3600)] 30.887m * 差值 *3600 111193.2m * 差值 同緯度兩點之間距離dlo30.887m * [差值/(1…

企業級應用框架(五)IOC容器在框架中的應用

前言 在上一篇我大致的介紹了這個系列所涉及到的知識點&#xff0c;在本篇我打算把IOC這一塊單獨提取出來講&#xff0c;因為IOC容器在解除框架層與層之間的耦合有著不可磨滅的作用。當然在本系列前面的三篇中我也提供了一種基于反射的解耦方式&#xff0c;但是始終不是很優雅&…

后端開發需要學什么_都2020年了,還在糾結學什么語言?| 后端篇

幾個禮拜前&#xff0c;一個學弟問我&#xff1a;“Ray&#xff0c;我打算之后要找工作了&#xff0c;不過現在自己沒有特別深入的語言&#xff0c;最近想找一門好好學一下&#xff0c;你覺得學什么語言好呀&#xff1f;”我表示&#xff1a;“這個要看你求職方向、個人喜好、市…

python掃描ip的端口打開情況

我們的韓國bss系統上線之后&#xff0c;要求對主機的端口、資源使用進行統計&#xff0c;端口每個主機去看&#xff0c;太費勁了&#xff0c;所以&#xff0c;就寫了這樣一個小程序&#xff0c;不是很完美但是&#xff0c;可以用啊&#xff01;哈哈哈&#xff0c;別噴&#xff…

flash java 通信,Flash到JavaScript的通信實例

從HTML可以發送數據到Flash,反過來也可以. 這個例子演示了如何應用Flash的Fscommand來發送數據到Javascript.簡要步驟:Flash中新建一個文件,保存為flash_to_javascript.fla創建一個文本域,設置成輸入文本(Input Text),選擇"border"以便我們能看到他,指定他的變量為in…

10個非常有用的CSS hack和技術

轉自&#xff1a;http://www.qianduan.net/10-useful-css-hacks-and-technique.html 1 – 跨瀏覽器的inline-block <style>li {width: 200px;min-height: 250px;border: 1px solid #000;display: -moz-inline-stack;display: inline-block;margin: 5px;zoom: 1;*display:…

Java的遞歸算法

遞歸算法設計的基本思想是&#xff1a;對于一個復雜的問題&#xff0c;把原問題分解為若干個相對簡單類同的子問題&#xff0c;繼續下去直到子問題簡單到可以直接求解&#xff0c;也就是說到了遞推的出口&#xff0c;這樣原問題就有遞推得解。 關鍵要抓住的是&#xff1a; &…

python list遍歷定位元素_python for循環,第二遍定位不到元素?

ycyzharry: 也不行&#xff0c;我的代碼import unittestimport timeimport xlrdfrom selenium import webdriverimport seleniumdef open_excel(filefile.xls):try:data xlrd.open_workbook(file)return dataexcept Exception as e:print(str(e))def excel_table_byindex(file…

發現Java程序中的Bug

昨天在CSDN上閱讀 "Java中十個常見的違規編碼"這篇文章時&#xff0c;無意中找到了3個 "發現Java程序中的Bug"工具。 文章地址&#xff1a;http://www.csdn.net/article/2012-09-11/2809829-common-code-violations-in-java其中&#xff0c; FindBugs? - …

原生php登錄注冊,原生php登陸注冊

本以為一個登陸注冊功能十來分鐘就寫好了&#xff0c;沒想到thinkPHP用久了&#xff0c;原生的php不會寫了最開始我直接寫了類和方法&#xff0c;在前臺傳遞參數給類的login方法(action"index.php/login"),嘗試幾次發現無法訪問&#xff0c;這才意識到&#xff0c;這…

SpringMVC REST 風格靜態資源訪問配置

1 在web.xml中使用默認servlet處理靜態資源&#xff0c;缺點是如果靜態資源過多&#xff0c;則配置量會比較大&#xff0c;一旦有遺漏&#xff0c;則會造成資源無法正常顯示或404錯誤。 <!-- 靜態資源訪問控制 --><servlet-mapping><servlet-name>default<…