nodejs爬虫学习
1,引入所需依赖
const https = require('https');
const fs = require('fs');
const cheerio = require('cheerio');
2,业务代码展示
https.get('网址',function(res) {
// 分段返回, 自己拼接
let html = '';
// 有数据产生的时候 拼接
res.on('data',function(chunk) {
html = chunk;
})
res.on('end',function() {
const $ = cheerio.load(html);
let allFilms = [];
$('li .item').each(function() {
// this 循环时 指向当前这个电影
// 当前这个电影下面的title
const title = $('.title',this).text();
const star = $('.rating_num',this).text();
const pic = $('.pic img',this).attr('src');
allFilms.push({
title,star,pic
})
})
// 把数组写入json里面
fs.writeFile('./films.json',JSON.stringify(allFilms),function(err){
if(!err) {
console.log('文件写入完毕');
}
})
// 下载图片
downloadImage(allFilms);
})
})
function downloadImage(allFilms) {
for(let i=0; i<allFilms.length; i ) {
const picUrl = allFilms[i].pic;
console.log('获取图片',picUrl);
// 请求 -》 拿到数据
// fs.writeFile('./xx.png','内容')
https.get(picUrl,function(res) {
res.setEncoding('binary');
let str = '';
res.on('data',function(chunk) {
str = chunk;
})
res.on('end',function() {
fs.writeFile(`./images/${i}.png`, str, 'binary' ,function(err) {
if(!err) {
console.log(`第${i}张图片下载成功`);
}
})
})
})
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibcbke
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22