时间:2021-05-26
学习【node.js】也有几天时间了,所以打算写着练练手;索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉。emmm~~ ‘货'不多讲 ,开搞........
首先是依赖选择:
代码块如下:
//引入依赖//https请求const https = require('https');//简称node版的jqueryconst cheerio = require('cheerio');//解决防止出现乱码const iconv = require('iconv-lite')//http请求const request = require("request");//负责读写文件const fs = require('fs');//处理文件路径const path = require('path');爬取路径:
代码块:(PS:这里单独拿出来是因为这个站的素材比较推荐,可以上去瞅瞅~~)
const url = 'https://unsplash.com/';初步实现:
网站的基本构成
这里主要是我们直接确认一下需要的【img】标签,以及外面的【figure】,然后直接就可以开工了....
核心代码:
//方法对象const util = { getsrc: function (url) { https.get(url, res => { const chunks = []; res.on('data', chunk => { // chunks里面存储着网页的html内容 chunks.push(chunk); }); res.on('end', e => { let ALL = []; //编码格式 let html = iconv.decode(Buffer.concat(chunks), 'utf8'); let $ = cheerio.load(html, { decodeEntities: false }); //标签遍历 $("figure img").each(function (idex, elent) { let $elent = $(elent); let $srcset = $elent.attr("srcset"); if ($srcset != undefined) { let src = ($srcset.split(',').pop()).split('?')[0]; ALL.push({ src: src }) } }); //遍历数组 每个后面加.jpg ALL.forEach(item => { util.downloadimg(item.src, path.basename(item.src) + ".jpg", function () { console.log(path.basename(item.src) + ".jpg"); }); }) }); res.on('error', e => { console.log('Error: ' + e.message); }); }); }, //运行主函数 main: function () { console.log("------start--------"); util.getsrc(url); }, //下载图片函数 downloadimg: function (src, srcname, callback) { //http请求 request.head(src, function (err, res, body) { if (err) { console.log('err:' + err); return false; } console.log('res: ' + res); //保存数据,这里是防止未来得及记录数据又开始读取数据而导致数据丢失 request(src).pipe(fs.createWriteStream('./img/' + srcname)).on('close', callback); }); }} //主函数util.main();然后就可以运行 node xxx.js 看运行结果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言:最近想学习node.js,突然在网上看到基于node的爬虫制作教程,所以简单学习了一下,把这篇文章分享给同样初学node.js的朋友。目标:爬取http:
简介用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京、上海、广州、深圳、杭州、西安、成都7个城市的数据,分别以前端、PHP、jav
需求:使用Node.js爬取网页资源,开箱即用的配置将爬取到的网页内容以PDF格式输出如果你是一名技术人员,那么可以看我接下来的文章,否则,请直接移步到我的gi
本文实例讲述了Node.js实现批量下载图片简单操作。分享给大家供大家参考,具体如下:使用Node.js批量下载图片首先要获取到图片链接:constimg=["
一、Node.js实现代码复制代码代码如下:varhttp=require('http');varutil=require('util');/***根据ip获取