node爬蟲的幾種簡易實現方式

  說到爬蟲你們可能會以爲很NB的東西,能夠爬小電影,羞羞圖,沒錯就是這樣的。在node爬蟲方面,我也是個新人,這篇文章主要是給你們分享幾種實現nodehtml

爬蟲的方式。第一種方式,採用node,js中的 superagent+request + cheerio。cheerio是必須的,它至關於node版的jQuery,用過jQuery的同窗會很是容易上手。它node

主要是用來獲取抓取到的頁面元素和其中的數據信息。superagent是node裏一個很是方便的、輕量的、漸進式的第三方客戶端請求代理模塊,用他來請求目標頁面。瀏覽器

node中,http模塊也可做爲客戶端使用(發送請求),第三方模塊request對其使用方法進行了封裝,操做更方便。如下是三者的引入方法:服務器

  接下來咱們開始請求要爬取的目標頁面。申明目標頁面好比新浪網首頁:框架

  

  如新浪首頁部分代碼異步


  

 

經過superagent請求目標網站,獲取到網站內容,經過cheerio.load方法引入要解析的html
cheerio中的有關DOM操做的方式
函數

此處採用  .each(function(index,element){...})方式遍歷須要的元素
工具

 

 返回結果以下:測試

若要將文字內容存儲可採用如下方式:網站

引入fs模塊 const fs= require("fs")

引入path模塊 const path=require("path")

Node.js 內置的fs模塊就是文件系統模塊,負責讀寫文件。和全部其餘JS模塊不一樣的是,fs模塊同時提供了異步和同步的方法。

在上述方法中調用存儲文字內容mkdirs方法

//存放數據
mkdirs('./content2',saveContent); (注: content2是新建文件名;saveContent是回調函數)

文字內容最終將存儲在content2中的content.txt文件中

 

若想存儲圖片可採用如下方式:

第二種方式: 使用Nightmare自動化測試工具。

這裏介紹一下nightmare工具的用途:

Electron可讓你使用純JavaScript調用Chrome豐富的原生的接口來創造桌面應用。你能夠把它看做一個專一於桌面應用的Node.js的變體,而不是Web服務器。

其基於瀏覽器的應用方式能夠極方便的作各類響應式的交互

Nightmare是一個基於Electron的框架,針對Web自動化測試和爬蟲,由於其具備跟PlantomJS同樣的自動化測試的功能能夠在頁面上模擬用戶的行爲觸發一些異步數據加載,

也能夠跟Request庫同樣直接訪問URL來抓取數據,而且能夠設置頁面的延遲時間,因此不管是手動觸發腳本仍是行爲觸發腳本都是垂手可得的。

const Nightmare=require("nightmare")  //自動化測試包 ,處理動態頁面
const nightmare=Nightmare({show: true})   show:true時,運行node能夠顯示內置模擬瀏覽器

  運行結束後,會在image2中存儲下載的圖片。

  好了,文章就到這裏了,有什麼問題歡迎小夥伴指正。

 

 

 

 

 

 

 

 

 

 

  

 

原文出處:https://www.cnblogs.com/cool-wan/p/11388824.html

相關文章
相關標籤/搜索