天天看點

Node爬蟲實踐

爬蟲的原理很好了解,就是在服務端請求另一個伺服器的資源,前端有跨域問題,而服務端沒有,這是天然優勢。掌握node的前端可以為所欲為了。

Node爬蟲實踐

1 首先,根據請求資源的協定選擇合适的子產品,比如csdn是https協定,就用https的方法取請求,之前沒有注意到這個問題。

2 用get方法請求需要抓去内容的網頁位址,試過用request方法,沒有反應。

3 用cheerio子產品查找dom元素,抓取需要的内容。cheerio是服務端的dom操作工具,以jquery為核心。

4 把圖檔的絕對位址改成本地路徑,前端頁面無法直接通路跨域受保護圖檔。

5 最後一步,也是最重要的一步:把圖檔儲存在本地檔案夾。試過fs.readFile 和fs.writeFile,儲存下來的圖檔受損打不開;試過直接get請求,傳回的圖檔都是0位元組。正确的方法是用request方法,至于為什麼?我也不清楚啊。可能是binary二進制的優勢,畢竟再怎麼僞裝,所有資料本質還是二進制吧。

到此為止,爬蟲的功能就結束了。

Node爬蟲實踐

繼續閱讀