欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node實(shí)現(xiàn)爬蟲(chóng)的幾種簡(jiǎn)易方式

 更新時(shí)間:2019年08月22日 08:26:09   作者:coolwan丶  
這篇文章主要給大家介紹了關(guān)于node實(shí)現(xiàn)爬蟲(chóng)的幾種簡(jiǎn)易方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

說(shuō)到爬蟲(chóng)大家可能會(huì)覺(jué)得很NB的東西,可以爬小電影,羞羞圖,沒(méi)錯(cuò)就是這樣的。在node爬蟲(chóng)方面,我也是個(gè)新人,這篇文章主要是給大家分享幾種實(shí)現(xiàn)node

爬蟲(chóng)的方式。第一種方式,采用node,js中的 superagent+request + cheerio。cheerio是必須的,它相當(dāng)于node版的jQuery,用過(guò)jQuery的同學(xué)會(huì)非常容易上手。它

主要是用來(lái)獲取抓取到的頁(yè)面元素和其中的數(shù)據(jù)信息。superagent是node里一個(gè)非常方便的、輕量的、漸進(jìn)式的第三方客戶端請(qǐng)求代理模塊,用他來(lái)請(qǐng)求目標(biāo)頁(yè)面。

node中,http模塊也可作為客戶端使用(發(fā)送請(qǐng)求),第三方模塊request對(duì)其使用方法進(jìn)行了封裝,操作更方便。以下是三者的引入方法:

接下來(lái)我們開(kāi)始請(qǐng)求要爬取的目標(biāo)頁(yè)面。申明目標(biāo)頁(yè)面比如新浪網(wǎng)首頁(yè):

如新浪首頁(yè)部分代碼

  

通過(guò)superagent請(qǐng)求目標(biāo)網(wǎng)站,獲取到網(wǎng)站內(nèi)容,通過(guò)cheerio.load方法引入要解析的html
cheerio中的有關(guān)DOM操作的方式

此處采用 .each(function(index,element){...})方式遍歷需要的元素

返回結(jié)果如下:

若要將文字內(nèi)容存儲(chǔ)可采用以下方式:

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

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

Node.js 內(nèi)置的fs模塊就是文件系統(tǒng)模塊,負(fù)責(zé)讀寫(xiě)文件。和所有其他JS模塊不同的是,fs模塊同時(shí)提供了異步和同步的方法。

在上述方法中調(diào)用存儲(chǔ)文字內(nèi)容mkdirs方法

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

文字內(nèi)容最終將存儲(chǔ)在content2中的content.txt文件中

若想存儲(chǔ)圖片可采用以下方式:

第二種方式: 使用Nightmare自動(dòng)化測(cè)試工具。

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

Electron可以讓你使用純JavaScript調(diào)用Chrome豐富的原生的接口來(lái)創(chuàng)造桌面應(yīng)用。你可以把它看作一個(gè)專注于桌面應(yīng)用的Node.js的變體,而不是Web服務(wù)器。

其基于瀏覽器的應(yīng)用方式可以極方便的做各種響應(yīng)式的交互

Nightmare是一個(gè)基于Electron的框架,針對(duì)Web自動(dòng)化測(cè)試和爬蟲(chóng),因?yàn)槠渚哂懈鶳lantomJS一樣的自動(dòng)化測(cè)試的功能可以在頁(yè)面上模擬用戶的行為觸發(fā)一些異步數(shù)據(jù)加載,

也可以跟Request庫(kù)一樣直接訪問(wèn)URL來(lái)抓取數(shù)據(jù),并且可以設(shè)置頁(yè)面的延遲時(shí)間,所以無(wú)論是手動(dòng)觸發(fā)腳本還是行為觸發(fā)腳本都是輕而易舉的。

const Nightmare=require("nightmare") //自動(dòng)化測(cè)試包 ,處理動(dòng)態(tài)頁(yè)面
const nightmare=Nightmare({show: true}) show:true時(shí),運(yùn)行node可以顯示內(nèi)置模擬瀏覽器

運(yùn)行結(jié)束后,會(huì)在image2中存儲(chǔ)下載的圖片。

好了,文章就到這里了,有什么問(wèn)題歡迎小伙伴指正。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • nodejs操作mongodb的增刪改查功能實(shí)例

    nodejs操作mongodb的增刪改查功能實(shí)例

    這篇文章主要介紹了nodejs操作mongodb的增刪改查功能,簡(jiǎn)單分析了mongodb模塊的安裝并結(jié)合實(shí)例形式分析了nodejs操作mongodb數(shù)據(jù)庫(kù)進(jìn)行增刪改查的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-11-11
  • node.js下when.js 的異步編程實(shí)踐

    node.js下when.js 的異步編程實(shí)踐

    這篇文章主要介紹了node.js下when.js 的異步編程實(shí)踐,需要的朋友可以參考下
    2014-12-12
  • 利用yarn實(shí)現(xiàn)一個(gè)webpack+react種子

    利用yarn實(shí)現(xiàn)一個(gè)webpack+react種子

    其實(shí)以前就寫(xiě)過(guò)如何使用React-router和Webpack快速構(gòu)建一個(gè)react程序。后來(lái)發(fā)現(xiàn)版本太老,于是乎最近又重新組織了下結(jié)構(gòu),使用最近發(fā)布的yarn作為包管理工具,介紹下基本安裝步驟,有需要的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • 純異步nodejs文件夾(目錄)復(fù)制功能

    純異步nodejs文件夾(目錄)復(fù)制功能

    這篇文章主要介紹了純異步nodejs文件夾(目錄)復(fù)制功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 關(guān)于Mac下安裝nodejs、npm和cnpm的教程

    關(guān)于Mac下安裝nodejs、npm和cnpm的教程

    本文通過(guò)圖文并茂的形式給大家介紹了Mac下安裝nodejs、npm和cnpm的教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • Node.js API詳解之 tty功能與用法實(shí)例分析

    Node.js API詳解之 tty功能與用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 tty功能與用法,結(jié)合實(shí)例形式分析了Node.js API中tty的基本功能、用法及終端操作相關(guān)使用技巧,需要的朋友可以參考下
    2020-04-04
  • Node.js原理阻塞和EventEmitter及其繼承的運(yùn)用實(shí)戰(zhàn)

    Node.js原理阻塞和EventEmitter及其繼承的運(yùn)用實(shí)戰(zhàn)

    這篇文章主要介紹了Node.js原理阻塞和EventEmitter及其繼承的運(yùn)用實(shí)戰(zhàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Node.js中的require.resolve方法使用簡(jiǎn)介

    Node.js中的require.resolve方法使用簡(jiǎn)介

    在Node.js中,可以使用require.resolve函數(shù)來(lái)查詢某個(gè)模塊文件的帶有完整絕對(duì)路徑的文件名,下面這篇文章主要介紹了Node.js中require.resolve方法使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Nodejs進(jìn)階之服務(wù)端字符編解碼和亂碼處理

    Nodejs進(jìn)階之服務(wù)端字符編解碼和亂碼處理

    這篇文章主要介紹了Nodejs進(jìn)階之服務(wù)端字符編解碼和亂碼處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序

    如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序

    NoSQL?數(shù)據(jù)庫(kù)對(duì)于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)信息,對(duì)其進(jìn)行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下
    2022-09-09

最新評(píng)論