웹사이트 크롤링 이미지 기능을 구현하기 위해 nodejs를 사용하는 방법을 알려주기 위해 예제를 제공하겠습니다. 관심 있는 친구는 저장할 수 있습니다.
예제를 통해 nodejs가 웹 사이트 이미지를 크롤링하는 기능을 구현하는 방법을 설명합니다. 다음은 전체 내용입니다.
원리:
Crawler는 분명히 노드를 사용하면 I/O가 발생하는 가장 확실한 IO 집약적 애플리케이션 시나리오입니다. 대기 오버헤드 스몰 데이터 마이닝이 더 편리합니다
express 모듈을 사용하여 노드 서비스를 구축
하고 요청 모듈을 사용하여 대상 페이지의 html 코드를 얻습니다
cheerio 모듈을 다운로드하여 html 코드를 처리합니다(cheerio에는 jQuery와 구문이 유사하여 사용하기 쉽고 편리함)
환경 구성:
npm install express request cheerio --save
(1)각 모듈 소개
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 ) 요청 보내기
http.get(function(res){ var html = ''; var titles = []; res.setEncoding('utf-8') //防止中文乱码 res.on('data',function(chunk){ html += chrunk; //监听data事件 每次取一块数据 }) res.on('end',function(){ var $ = cheerio.load(html); //获取数据完成后,解析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模块,向服务器发起请求 获取图片资源 request.head(imgSrc, function(error, res,body){ if(error){ console.log('失败了') } }); //通过管道的方式用fs模块将图片写到本地的images文件下 request(imgSrc).pipe.(fs.createWriteStream('./images/' + imgfile)); }) }) })
이 글의 내용은 여기까지입니다. 친구들에게 도움이 되기를 바랍니다! !
관련 권장 사항:
위 내용은 nodejs는 이미지_node.js 웹사이트를 크롤링하는 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!