【nodejs】---一番簡単にnodejsでデータを取る方法--【北楊】

3596 ワード

wwww.baidu.comのページの内容をcopyからindexまで
const http=require('https');
const fs=require('fs');
//         
http.get('https://www.baidu.com/', (res) => {
  // console.log(res)
  // console.log(res.statusCode)
   const { statusCode } = res;//   
   const contentType = res.headers['content-type'];//    
    console.log(contentType)
    // new Error('   ')       
  let error;

  if (statusCode !== 200) {
    error = new Error('     200');
  } else if (!/^text\/html/.test(contentType)) {
    error = new Error('      ');
  }

  if (error) {
    console.log(error.message);
    // consume response data to free up memory
    res.resume();//       
    return;
  }
   //     
  res.setEncoding('utf8');
  //         
  let rawData = '';
  res.on('data', (chunk) => {//           chunk         
   rawData += chunk;
    });
  res.on('end', () => {
    //          end   
    fs.writeFileSync('./index.html',rawData)
  });
})
.on('error', (e) => {
  //          error  
  console.error(`Got error: ${e.message}`);
});
url内の各ピクチャのsrc属性情報を取得し、res.on(‘end’、()=>{});
  // 1.         
  // 2.                                   

const cheerio = require('cheerio')//    
const http=require('https');
const fs=require('fs');
//         
http.get('https://www.qunar.com/', (res) => {
   const { statusCode } = res;//   
   const contentType = res.headers['content-type'];//    
    console.log(contentType)
  let error;

  if (statusCode !== 200) {
    error = new Error('     200');
  } else if (!/^text\/html/.test(contentType)) {
    error = new Error('      ');
  }

  if (error) {
    console.log(error.message);
    // consume response data to free up memory
    res.resume();//       
    return;
  }
   //     
  res.setEncoding('utf8');
  //         
  let rawData = '';
  res.on('data', (chunk) => {//           chunk         
   rawData += chunk;
    });
  res.on('end', () => {
    //          end   
  // fs.writeFileSync('./index.html',rawData)
	 const $ = cheerio.load(rawData)
	//      html          
	 $('img').each(function(index,el){
	 	console.log($(this).attr('src'))
	 })

	//   jq        
  });
})
.on('error', (e) => {
  //          error  
  console.error(`Got error: ${e.message}`);
});
各ピクチャのsrc属性により、ピクチャcopyを指定の位置に移動します.
//       
//   http                  
// let url='http://api.douban.com/v2/movie/top250?start=25&count=1';


const http=require('https');
const fs=require('fs');
//         
http.get('https://www.baidu.com/img/bd_logo.png', (res) => {
   const { statusCode } = res;//   
   const contentType = res.headers['content-type'];//    
  let error;

  if (statusCode !== 200) {
    error = new Error('     200');
  }


  if (error) {
    console.log(error.message);

    res.resume();
    return;
  }
   //     
  res.setEncoding('binary');//          
  //         
  let rawData = '';
  res.on('data', (chunk) => {
   rawData += chunk;
    });
  res.on('end', () => {
  	console.log(rawData)
     fs.writeFile('./test1.png',rawData,'binary',(err)=>{
         if (err) {throw err}
         console.log('  ok')
     })
  });
})
.on('error', (e) => {
  //          error  
  console.error(`Got error: ${e.message}`);
});