1.簡介
上大學的時候,第一次聽同學說網頁爬蟲,當時比較幼稚和懵懂,覺得就是幾只電子蟲子爬在網頁上在抓取東西。后來又聽說寫代碼可以實現網頁爬蟲,宏哥感覺高大上,后來工作又聽說,有的公司做爬蟲被抓的新聞等等。一直以來,爬蟲似乎都是寫代碼去實現的,今天宏哥心血來潮,試一下能不能不寫代碼實現網頁爬蟲了。因此今天文章的主題就是介紹一下 Jmeter 如何實現一個網頁爬蟲!這里宏哥以爬取博客園首頁文章為例實戰一下。
2.爬蟲原理
Jmeter 的爬蟲原理其實很簡單,就是對網頁提交一個請求,然后把返回的所有 href 提取出來,利用 ForEach 控制器去實現 url 遍歷。這樣解釋是不是很清晰?下面宏哥就來簡單介紹一下如何操作。
3.小試牛刀
1、首先我們根據爬蟲原理需要對網頁提交一個請求,就拿博客園來舉例子實戰一下吧!我們向博客園發起一個請求,如下圖所示:

2、察看結果樹,觀察一下返回值可以發現中間有很多 href 標簽 + 文字標題的 url,如下圖所示:

3、宏哥現在需要把這些 url 提取出來,利用強大的正則表達式!如下圖所示:

4、從上圖可以看出,宏哥已經把需要的東西提取到了,現在宏哥添加一個正則表達式提取器,記得匹配數字填-1,意思就是把所有合適的 url 都取出來,如下圖所示:
5、然后,宏哥加一個 debug 取樣器,運行jmeter,查看一下是否真的取出來了我們想要的東西,如下圖所示:

6、又或者我們在結果里面直接利用正則匹配一下,可以看到很多網頁鏈接都被取出來了,如下圖所示:
7、接下來我們需要動用到 ForEach 控制器了,利用這個控制器對所有取出來的 url 進行遍歷觸發。記得在控制器里面填入變量名稱,也就是剛剛正則表達式里面的變量名,如下圖所示:
8、在 ForEach 控制器下面再添加一個 http 請求,利用它去執行請求觸發,如下圖所示:

9、重新運行Jmeter后,我們可以觀察結果了,見證奇跡的時候到了。觀察結果我們發現所有匹配的 url 都被觸發了,如下圖所示:
10.修改HTML,可以更好的查看我們爬取到的文章,如下圖所示:
到此,Jmeter之網頁爬蟲-上篇就結束了,是不是很簡單?去實際操作一下吧!
4.小結
注意正則表達式,宏哥開始的時候,沒有那個問號,結果導致url中,會帶有target一串東西,導致請求失敗。還有就是https注意有個s否則也會失敗的。宏哥宏哥這里只是爬取了博客園首頁的文章,有興趣的可以自己試一下,爬取第1、2、3頁的文章。
好了,關於網頁爬蟲就介紹到這里了,其實知道其原理后實現是相當簡單的,下一篇宏哥介紹一下,如何爬取圖片。