從node問世之後,就不斷被JavaScript的忠實追隨者拿來幹一些原來只有php、Python等後端語言才能乾的事情,例如寫個爬蟲之類的。對於前端er來講,用上一些好用的輪子,你可能十幾行代碼就能夠寫一個crawler哦~
php
爬蟲的思路十分簡單:前端
按照必定的規律發送 HTTP 請求得到頁面 HTML 源碼(必要時須要加上必定的 HTTP 頭信息,好比 cookie 或 referer 之類)node
利用正則匹配或第三方模塊解析 HTML 代碼,提取有效數據jquery
將數據持久化到數據庫中程序員
固然爬蟲的寫法千千萬,下面只提供吃瓜羣衆都能看懂的版本~web
1. *準備階段*面試
1.1. NPM數據庫
1.2. package.jsonnpm
1.3. crawler.jsjson
2. *學習階段*
2.1. REQUEST
2.2. CHEERIO
3. *建設階段*
4. *實驗階段*
(npm:趁還沒被yarn幹掉再續一秒)
首先咱們須要經過npm安裝兩個模塊reuqest
和cheerio
來幫助咱們更方便地請求
和 解析
頁面
終端cd到你的文件目錄裏,先裝上,一下子我再各自講它們
package.json
裝完你能夠看到你文件夾裏的package.json
裏已經多了兩個依賴項
crawler.js
假設你的爬蟲程序主文件名叫crawler.js
,咱們須要在這個文件裏引入request
和cheerio
這兩個模塊
js代碼爲
準備階段完成後,讓咱們開始沉迷於學習階段= =
request是個很是好用的針對HTTP請求的模塊,簡言之是對 http.request
更高級的封裝,口號是——「Simplified HTTP client」
request 這個模塊能夠幫你下載資料。使用方式:
隨便來個例子,假設你以爲你本身真是沉迷於學習沒法自拔,是個人迷妹/癡漢一隻,你想要隨時監控我博客的內容,那你就這樣寫
不過我建議大家轉去搞LV的( ͡° ͜ʖ ͡°)=>羣瘋之下
(小學妹就不坑LV老師啦,歡迎你們自行尋找他的我的站~)
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
「大清亡於閉關鎖國,學習技術須要交流和資料」。 在這裏我給你們準備了不少的學習資料免費獲取,包括但不限於技術乾貨、大廠面試題系列、技術動向、職業生涯等一切有關程序員的分享