nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能
通過(guò)實(shí)例給大家講解nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能,以下就是全部?jī)?nèi)容:
原理:
爬蟲(chóng)是最明顯的IO密集型應(yīng)用場(chǎng)景,顯然用node,使得I/O等待開(kāi)銷小數(shù)據(jù)挖掘比較方便
借助express模塊來(lái)搭建node服務(wù)
并使用request模塊獲取目標(biāo)頁(yè)面的html代碼
下載cheerio模塊對(duì)html代碼做處理(cheerio類似jQuery的語(yǔ)法,所以好用又方便)
環(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'); //用來(lái)操作文件
var url = 'https://movie.douban.com/cinema/nowplaying/beijing/' //定義要爬的頁(yè)面
(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)聽(tīng)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('失敗了')
}
});
//通過(guò)管道的方式用fs模塊將圖片寫(xiě)到本地的images文件下
request(imgSrc).pipe.(fs.createWriteStream('./images/' + imgfile));
})
})
})
- node+experss實(shí)現(xiàn)爬取電影天堂爬蟲(chóng)
- 利用node.js寫(xiě)一個(gè)爬取知乎妹紙圖的小爬蟲(chóng)
- 利用Node.js制作爬取大眾點(diǎn)評(píng)的爬蟲(chóng)
- node爬取微博的數(shù)據(jù)的簡(jiǎn)單封裝庫(kù)nodeweibo使用指南
- Node.js環(huán)境下編寫(xiě)爬蟲(chóng)爬取維基百科內(nèi)容的實(shí)例分享
- 使用nodejs爬取前程無(wú)憂前端技能排行
- node.js爬蟲(chóng)爬取拉勾網(wǎng)職位信息
- 手把手教你用Node.js爬蟲(chóng)爬取網(wǎng)站數(shù)據(jù)的方法
- 利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)詳解
- node.js爬取中關(guān)村的在線電瓶車信息
相關(guān)文章
配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解
這篇文章主要介紹了配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
Nodejs實(shí)現(xiàn)多房間簡(jiǎn)易聊天室功能
本文通過(guò)實(shí)例代碼給大家介紹了Nodejs實(shí)現(xiàn)多房間簡(jiǎn)易聊天室功能,需要的朋友參考下吧2017-06-06
詳解基于node的前端項(xiàng)目編譯時(shí)內(nèi)存溢出問(wèn)題
本篇文章主要介紹了基于node的前端項(xiàng)目編譯時(shí)內(nèi)存溢出問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
手把手教你把nodejs部署到linux上跑出hello world
本篇文章主要介紹了手把手教你把nodejs部署到linux上跑出hello world,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-06-06
基于豆瓣API+Angular開(kāi)發(fā)的web App
這篇文章主要介紹了基于豆瓣API+Angular開(kāi)發(fā)的web App的方法和示例代碼,效果非常棒,有需要的小伙伴參考下2015-01-01

