>  기사  >  웹 프론트엔드  >  nodejs는 이미지_node.js 웹사이트를 크롤링하는 기능을 구현합니다.

nodejs는 이미지_node.js 웹사이트를 크롤링하는 기능을 구현합니다.

韦小宝
韦小宝원래의
2017-12-16 09:15:532059검색

웹사이트 크롤링 이미지 기능을 구현하기 위해 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

NodeJs의 데이터베이스 예외 처리 솔루션

nodejs를 사용하여 채팅 기능을 구현하는 방법


위 내용은 nodejs는 이미지_node.js 웹사이트를 크롤링하는 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.