最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)式的第三方客戶(hù)端請(qǐng)求代理模塊,用他來(lái)請(qǐng)求目標(biāo)頁(yè)面。

node中,http模塊也可作為客戶(hù)端使用(發(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è)專(zhuān)注于桌面應(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è)面上模擬用戶(hù)的行為觸發(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)文章

  • nvm安裝步驟及使用方法

    nvm安裝步驟及使用方法

    nvm是一個(gè)管理nodejs版本的工具。在實(shí)際的開(kāi)發(fā)中,有些項(xiàng)目的開(kāi)發(fā)依賴(lài)需要低版本的nodejs運(yùn)行環(huán)境,有些則需要高版本的nodejs,此時(shí)我們就需要使用nvm來(lái)切換nodejs版本,接下來(lái)通過(guò)本文給大家講解nvm安裝步驟及使用方法,感興趣的朋友一起看看吧
    2023-01-01
  • 解決npm?i?報(bào)錯(cuò)以及python安裝卡住的問(wèn)題

    解決npm?i?報(bào)錯(cuò)以及python安裝卡住的問(wèn)題

    這篇文章主要介紹了解決npm?i?報(bào)錯(cuò)以及python安裝卡住的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • node.js中的fs.realpathSync方法使用說(shuō)明

    node.js中的fs.realpathSync方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.realpathSync方法使用說(shuō)明,本文介紹了fs.realpathSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 實(shí)例分析nodejs模塊xml2js解析xml過(guò)程中遇到的坑

    實(shí)例分析nodejs模塊xml2js解析xml過(guò)程中遇到的坑

    這篇文章主要介紹了實(shí)例分析nodejs模塊xml2js解析xml過(guò)程中遇到的坑,涉及nodejs模塊xml2js解析xml過(guò)程中parseString方法參數(shù)使用技巧,需要的朋友可以參考下
    2017-03-03
  • NodeJs下的測(cè)試框架Mocha的簡(jiǎn)單介紹

    NodeJs下的測(cè)試框架Mocha的簡(jiǎn)單介紹

    本篇文章主要介紹了NodeJs下的測(cè)試框架Mocha的簡(jiǎn)單介紹,是目前最為流行的javascript框架之一,在本文我們重點(diǎn)介紹它在NodeJs上的使用。有興趣的可以了解一下。
    2017-02-02
  • Nodejs在局域網(wǎng)配置https訪問(wèn)的實(shí)現(xiàn)方法

    Nodejs在局域網(wǎng)配置https訪問(wèn)的實(shí)現(xiàn)方法

    做一個(gè)局域網(wǎng)WebRTC視頻聊天系統(tǒng),需要用到HTTPS。因此,配置Node.js使其支持HTTPS訪問(wèn)。這篇文章主要介紹了Nodejs在局域網(wǎng)配置https訪問(wèn)的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2020-10-10
  • nodejs微信開(kāi)發(fā)之自動(dòng)回復(fù)的實(shí)現(xiàn)

    nodejs微信開(kāi)發(fā)之自動(dòng)回復(fù)的實(shí)現(xiàn)

    這篇文章主要介紹了nodejs微信開(kāi)發(fā)之自動(dòng)回復(fù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • nodejs微信開(kāi)發(fā)之授權(quán)登錄+獲取用戶(hù)信息

    nodejs微信開(kāi)發(fā)之授權(quán)登錄+獲取用戶(hù)信息

    這篇文章主要介紹了nodejs微信開(kāi)發(fā)之授權(quán)登錄+獲取用戶(hù)信息,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • 解決下載了nodejs但npm?-v沒(méi)有反應(yīng)問(wèn)題的全過(guò)程

    解決下載了nodejs但npm?-v沒(méi)有反應(yīng)問(wèn)題的全過(guò)程

    最近工作中遇到了個(gè)問(wèn)題,node安裝成功,但npm無(wú)法使用,所以下面這篇文章主要給大家介紹了關(guān)于下載了nodejs但npm?-v沒(méi)有反應(yīng)問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • node版本管理器Volta的簡(jiǎn)單使用

    node版本管理器Volta的簡(jiǎn)單使用

    Volta是一款強(qiáng)大的JavaScript工具管理器,它簡(jiǎn)化了命令行工具的安裝和管理,本文主要介紹了node版本管理器Volta的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論

桐城市| 罗定市| 长武县| 沈阳市| 平乡县| 安西县| 万载县| 馆陶县| 拉萨市| 礼泉县| 广宗县| 通州区| 凌海市| 桐乡市| 寻乌县| 永川市| 南乐县| 西峡县| 喜德县| 兰州市| 邮箱| 兴安盟| 门头沟区| 连城县| 准格尔旗| 闸北区| 内丘县| 芮城县| 永胜县| 高台县| 陆丰市| 南阳市| 金平| 台北县| 金昌市| 太和县| 温宿县| 甘洛县| 阜南县| 衡阳县| 铜山县|