nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能
通過實(shí)例給大家講解nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能,以下就是全部?jī)?nèi)容:
原理:
爬蟲是最明顯的IO密集型應(yīng)用場(chǎng)景,顯然用node,使得I/O等待開銷小數(shù)據(jù)挖掘比較方便
借助express模塊來搭建node服務(wù)
并使用request模塊獲取目標(biāo)頁面的html代碼
下載cheerio模塊對(duì)html代碼做處理(cheerio類似jQuery的語法,所以好用又方便)
環(huán)境配置:
npm install express request cheerio --save
(1)引入各個(gè)模塊
var http = require('http'); var request = require('request); var cheerio = require('cheerio'); var fs = require('fs'); //用來操作文件 var url = 'https://movie.douban.com/cinema/nowplaying/beijing/' //定義要爬的頁面
(2)發(fā)送請(qǐng)求
http.get(function(res){ var html = ''; var titles = []; res.setEncoding('utf-8') //防止中文亂碼 res.on('data',function(chunk){ html += chrunk; //監(jiān)聽data事件 每次取一塊數(shù)據(jù) }) res.on('end',function(){ var $ = cheerio.load(html); //獲取數(shù)據(jù)完成后,解析html //將獲取的圖片存到images文件夾中 $('.mod-bd img').each(function(index, item){ //獲取圖片屬性 var imgName = $(this).parent().next().text().trimg() var imgfile = imgName + '.jpeg'; var imgSrc = $(this).attr('src') //采用request模塊,向服務(wù)器發(fā)起請(qǐng)求 獲取圖片資源 request.head(imgSrc, function(error, res,body){ if(error){ console.log('失敗了') } }); //通過管道的方式用fs模塊將圖片寫到本地的images文件下 request(imgSrc).pipe.(fs.createWriteStream('./images/' + imgfile)); }) }) })
- node+experss實(shí)現(xiàn)爬取電影天堂爬蟲
- 利用node.js寫一個(gè)爬取知乎妹紙圖的小爬蟲
- 利用Node.js制作爬取大眾點(diǎn)評(píng)的爬蟲
- node爬取微博的數(shù)據(jù)的簡(jiǎn)單封裝庫nodeweibo使用指南
- Node.js環(huán)境下編寫爬蟲爬取維基百科內(nèi)容的實(shí)例分享
- 使用nodejs爬取前程無憂前端技能排行
- node.js爬蟲爬取拉勾網(wǎng)職位信息
- 手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù)的方法
- 利用node.js爬取指定排名網(wǎng)站的JS引用庫詳解
- node.js爬取中關(guān)村的在線電瓶車信息
相關(guān)文章
node.JS的crypto加密模塊使用方法詳解(MD5,AES,Hmac,Diffie-Hellman加密)
本文將詳細(xì)介紹node.JS的加密模塊crypto實(shí)現(xiàn)MD5,AES,Hmac,Diffie-Hellman加密的詳解方法,需要的朋友可以參考下2020-02-02輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序,本系列文章將一步一步創(chuàng)建一個(gè)完整的nodejs服務(wù)器,需要的朋友可以參考下2014-12-12手把手教你VSCode配置JavaScript基于Node.js的調(diào)試環(huán)境
最近在補(bǔ)數(shù)據(jù)結(jié)構(gòu),在用VScode調(diào)試js代碼文件結(jié)果怎么都不行,這篇文章主要給大家介紹了關(guān)于VSCode配置JavaScript基于Node.js的調(diào)試環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-12-12關(guān)于npm主版本升級(jí)及其相關(guān)知識(shí)點(diǎn)總結(jié)
npm是Node.js默認(rèn)的包管理器,以javascript?編寫的軟件包管理系統(tǒng)用于分享和使用代碼,下面這篇文章主要給大家介紹了關(guān)于npm主版本升級(jí)及其相關(guān)知識(shí)點(diǎn)總結(jié)的相關(guān)資料,需要的朋友可以參考下2022-12-12Node.js中文件系統(tǒng)fs模塊的使用及常用接口
fs是filesystem的縮寫,該模塊提供本地文件的讀寫能力,基本上是POSIX文件操作命令的簡(jiǎn)單包裝。這篇文章主要介紹了Node.js中的文件系統(tǒng)fs模塊的使用,需要的朋友可以參考下2020-03-03