Java也能爬蟲?你不要騙我!
首先糾正一個常見的誤區:爬蟲只能由Python來做。提到爬蟲,大多數人可能會想到Python,並把它們混為一談。
實則不然,其實很多程式語言都能夠寫爬蟲,只不過用Python的人比較多而已。今天要給大家介紹的是用Java來寫一個爬蟲,實現獲取招聘網站信息的功能。
那麼,到底什麼是爬蟲呢?
定義
爬蟲,全稱是網絡爬蟲,又稱為網頁蜘蛛,是一種按照一定的規則,自動地抓取網際網路信息的程序或者腳本。
至此,你應該明白,爬蟲就是從網際網路自動獲取信息的一種東西,跟什麼程式語言寫的無關。
用途
搜尋引擎:通過爬蟲建立各網站內容的索引。數據採集分析:通過爬蟲獲取大量數據並加以分析。其他等等本質
我們今天要做的Java爬蟲獲取招聘網站信息就是數據採集分析的過程,其本質就是不斷向招聘網站發起HTTP請求,在響應中篩選出自己感興趣的內容並加以分析。
HTTP請求和響應對於大家來說應該已經很熟悉了,不管是使用JDK自帶的HttpURLConnection或者是第三方開源框架如Apache的HttpClient都很容易發起HTTP請求並接收響應。
問題的關鍵在於對於大量的響應,我們應該如何篩選出自己感興趣的內容?聰明的你也許已經猜得八九不離十了,沒錯,就是正則表達式。
我們只需要查看網頁原始碼,找出我們所感興趣的信息相關的規律,我們就能夠通過正則表達式將其篩選出來。
實踐
限於篇幅,我簡單闡述一下整個流程以及說明一些重要的關鍵點,如果有感興趣的朋友可以具體實踐操作一下。
在某招聘網站上選定條件,如「java(全文)+廣東省+1-1.5萬+1-3年」;通過翻頁來觀察網址的改變,這樣你就可以通過第1頁的網址計算出其他頁的網址(總頁數通過正則表達式可以獲取到);通過正則表達式獲取到每一條招聘信息的詳細信息,如職位名,公司名,工作地,薪資,發布時間等,然後可以新建一個Job類new出多個對象來存儲信息,最後放進集合類中便於操作(這一步的關鍵是查看網頁原始碼找出規律,然後通過正則精準獲取對應的信息);獲取完所有頁的信息後通過EasyExcel等工具生成Excel文件便於你查看並分析。
改進
上面的做法是比較簡單的實現,實際上還有很多可改進的地方,我列出一些方向供朋友們自行思考。
量比較大時,採用多線程提高效率。篩選出崗位要求,分析各種技術出現的頻次,可以得知企業對於人才的需求。網頁原始碼開頭和末尾的很多行都是無關的信息,不需要正則去匹配,可以直接跳過。其他等等
注意
爬蟲切勿過頭,如果你對某個網站造成過大的壓力造成伺服器出問題的話,你就有大麻煩了。本文純屬科普爬蟲的流程,請大家切記隨便玩玩就好,不要過分不要過分不要過分!
往期精選Java程式設計師2020年年後求職指南Java程式設計師必看的技術社區世界上最流行的版本控制系統Git