【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}`);
});