Node.JS爬虫实战-抓取图片并下载到本地(称为网页抓取器),它是一种按照一定规则自动从万维网上抓取信息的程序或脚本。其他不太常用的名称包括ant、autoindex、emulator或worm。通俗地说,就是通过机器自动获取想要的信息。当你访问一个网站,发现里面有很多漂亮的图片时,你会选择右键保存到本地。保存几张图片后,你会想为什么我不能写一个脚本自动把这些图片下载到本地呢?于是爬虫诞生了...常见的爬虫类型服务端渲染页面(ssr)是服务端返回了渲染后的html片段客户端渲染页面(csr)常见的单页应用是客户端渲染第二个需要分析接口爬虫。本文讲解第一种的使用,使用nodejs爬取远程图片并下载到本地。最终效果:准备1个目录┌──缓存│└──img图片目录├──app。js└──package.json2安装依赖axios请求库首页推荐并下载图片到本地1对页面结构进行分析分析,确定要爬取的内容NodeHTTP请求获取页面内容使用cheerio获取图片数组遍历图片数组,下载到本地2写代码axios获取html片段分析,找到图片在'newsimg'块,cheerio和jq基本一样,获取图片标题和下载链接constres=awaitaxios.get(target_url);consthtml=res.data;const$=cheerio.load(html);constresult_list=[];$('.newscon').each(element=>{result_list.push({title:$(element).find('.newsintroduction').text(),down_loda_url:$(element).find('img').attr('src').split('!')[0],});});this.result_list。推(...结果列表);已经得到一个下载链接数组,接下来要做的就是遍历数组,发送请求并保存到本地consttarget_path=path.res和fsolve(__dirname,`./cache/image/${href.split('/').pop()}`);constresponse=awaitaxios.get(href,{responseType:'stream'});awaitresponse.data.pipe(fs.createWriteStream(target_path));3请求优化避免过于频繁的请求会被封IP,有几个简单的方法:避免短时间内频繁请求,然后request中的设置axios拦截器经过一定时间User-Agent后,每次请求使用不同的ip库,每次请求使用不同的ip源码
