從node問世以後,就不斷被JavaScript的忠實追隨者拿來乾一些原來只有php、Python等後端語言才能幹的事情,例如寫個爬蟲之類的。對於前端er來說,用上一些好用的輪子,你可能十幾行代碼就可以寫一個crawler哦~ 爬蟲的思路十分簡單: 按照一定的規律發送 HTTP 請求獲得頁面 HTM ...
從node問世以後,就不斷被JavaScript的忠實追隨者拿來乾一些原來只有php、Python等後端語言才能幹的事情,例如寫個爬蟲之類的。對於前端er來說,用上一些好用的輪子,你可能十幾行代碼就可以寫一個crawler哦~
爬蟲的思路十分簡單:
按照一定的規律發送 HTTP 請求獲得頁面 HTML 源碼(必要時需要加上一定的 HTTP 頭信息,比如 cookie 或 referer 之類)
利用正則匹配或第三方模塊解析 HTML 代碼,提取有效數據
將數據持久化到資料庫中
當然爬蟲的寫法千千萬,下麵只提供吃瓜群眾都能看懂的版本~
*文章目錄*
-
1. *準備階段*
1.1. NPM
1.2. package.json
1.3. crawler.js
-
2. *學習階段*
2.1. REQUEST
2.2. CHEERIO
-
3. *建設階段*
-
4. *實驗階段*
*準備階段*
NPM
(npm:趁還沒被yarn幹掉再續一秒)
首先我們需要通過npm安裝兩個模塊reuqest
和cheerio
來幫助我們更方便地請求
和 解析
頁面
終端cd到你的文件目錄里,先裝上,一會兒我再各自講它們
package.json
裝完你可以看到你文件夾里的package.json
里已經多了兩個依賴項
crawler.js
假設你的爬蟲程式主文件名叫crawler.js
,我們需要在這個文件里引入request
和cheerio
這兩個模塊
js代碼為
準備階段完成後,讓我們開始沉迷於學習階段= =
*學習階段*
REQUEST
request是個非常好用的針對HTTP請求的模塊,簡言之是對 http.request
更高級的封裝,口號是——“Simplified HTTP client”
request 這個模塊可以幫你下載資料。使用方式:
隨便來個例子,假設你覺得你自己真是沉迷於學習無法自拔,是我的迷妹/痴漢一隻,你想要隨時監控我博客的內容,那你就這樣寫
不過我建議你們轉去搞LV的( ͡° ͜ʖ ͡°)=>群瘋之下
(小學妹就不坑LV老師啦,歡迎大家自行尋找他的個人站~)
CHEERIO
cheerio模塊可以在伺服器端像使用Jquery的方式一樣操作Dom結構,許多用法和jquery 的語法基本相同,為伺服器特別定製的,快速、靈活、實施的jQuery核心實現。
簡言之,是伺服器端的雞塊瑞(◕ܫ◕)~
Cheerio 幾乎能夠解析任何的 HTML 和 XML document,靈活好用,灰常厲害
只需這麼用:
基礎知識學習完畢,讓我們一起投入到火熱的社會主義建設中去~
*建設階段*
先把request搞上去,明確要爬的頁面,我們要爬的是A站的文章區(我不想搞B站,不想被封號TAT)
我們當然不能拍拍手,我們要用cheerio
去解析我們剛請求成功的頁面
最後爬下來的結果我們把它放在result.json
文件里
最後把這句話放在request方法里
最終你的crawler.js
看起來是這樣
啊~麻麻~我用16行代碼就寫了個爬蟲~╰(°▽°)╯
慢著,我們先來試驗下是否能成功
*實驗階段*
cd 到你的目錄,敲下激動人心的如下代碼
然後觀察你的文件夾里是否多了個result.json
呢,它看起來應該是如下這樣充滿了大新聞
result.json
結論
“大清亡於閉關鎖國,學習技術需要交流和資料”。 在這裡我給大家準備了很多的學習資料免費獲取,包括但不限於技術乾貨、大廠面試題系列、技術動向、職業生涯等一切有關程式員的分享
.web前端小白進階方法筆記,學習資料,面試題和視頻,項目源碼免費領取