var fs = require('fs'), path = require('path'), util = require('util'), // 以上为Nodejs自带依赖包 request = require('request'); // 需要npm install的包 // main函数,使用 node main执行即可 patchPreImg(); // 批量处理图片 function patchPreImg() { var tag1 = '摄影', tag2 = '国家地理', url = 'http://image.baidu.com/data/imgs?pn=%s&rn=60&p=channel&from=1&col=%s&tag=%s&sort=1&tag3=', url = util.format(url, 0, tag1, tag2), url = encodeURI(url), dir = 'D:/downloads/images/', dir = path.join(dir, tag1, tag2), dir = mkdirSync(dir); request(url, function(error, response, html) { var data = JSON.parse(html); if (data && Array.isArray(data.imgs)) { var imgs = data.imgs; imgs.forEach(function(img) { if (Object.getOwnPropertyNames(img).length > 0) { var desc = img.desc || ((img.owner && img.owner.userName) + img.column); desc += '(' + img.id + ')'; var downloadUrl = img.downloadUrl || img.objUrl; downloadImg(downloadUrl, dir, desc); } }); } }); } // 循环创建目录 function mkdirSync(dir) { var parts = dir.split(path.sep); for (var i = 1; i <= parts.length; i++) { dir = path.join.apply(null, parts.slice(0, i)); fs.existsSync(dir) || fs.mkdirSync(dir); } return dir; } var index = 1; // 开始下载图片,并log统计日志 function downloadImg(url, dir, desc) { var fileType = 'jpg'; if (url.match(/\.(\w+)$/)) fileType = RegExp.$1; desc += '.' + fileType; var options = { url: url, headers: { Host: 'f.hiphotos.baidu.com', Cookie: 'BAIDUID=810ACF57B5C38556045DFFA02C61A9F8:FG=1;' } }; var startTime = new Date().getTime(); request(options) .on('response', function() { var endTime = new Date().getTime(); console.log('Downloading...%s.. %s, 耗时: %ss', index++, desc, (endTime - startTime) / 1000); }) .pipe(fs.createWriteStream(path.join(dir, desc))); }
相关推荐
同时也是一个简单高效的nodejs爬虫模型。github上有好几个这样的开源项目,但是都只提供了爬虫部分,这个项目在爬虫的基础上还增加了保存数据,建立elasticsearch索引的模块,可以用在实际生产环境中,不过web模块...
nodejs爬虫抓取页面内容,简单好用
通过这个项目,我们可以学习到如何在Node.js环境中构建一个完整的网络爬虫,实现从抓取网页到解析数据,再到批量下载图片的整个流程。同时,也了解了如何优化异步操作的性能和控制并发执行,这对于任何需要处理大量...
本项目"nodejs简单爬虫"正是利用了Node.js的这一特性,以JavaScript语言编写了一个基础的网络爬虫。 首先,我们需要理解什么是网络爬虫。网络爬虫,又称为网页蜘蛛或机器人,是一种自动抓取互联网信息的程序。它...
本文主要讲述了使用Node.js实现批量下载图片的方法。 首先,当我们需要从网页上下载图片时,通常的思路是利用网络请求库(如request)向目标网页发送请求,获取到网页内容后,通过DOM解析库(如cheerio)来解析DOM...
Node.js网络图片爬虫是一种利用Node.js开发的程序,用于自动化地从互联网上抓取图片资源。这种爬虫通常基于HTTP或HTTPS协议,通过发送GET请求到目标网站,解析返回的HTML页面,提取图片URL,并下载这些图片。Node.js...
nodejs视频教程,可以快速帮助你入门nodejs开发中,nodejs不错哦
这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。...
使用nodejs写了一个爬虫的demo,目的是提取网页的title部分。 遇到最大的问题就是网页的编码与nodejs默认编码不一致造成的乱码问题。nodejs支持utf8, ucs2, ascii, binary, base64, hex等编码方式,但是对于汉语言...
"nodejs爬虫"是指使用Node.js编写程序来自动化抓取互联网上的信息。这种爬虫通过模拟浏览器发送HTTP请求,获取网页内容,然后解析HTML或其他格式的数据,提取所需信息。Node.js的爬虫通常会利用其强大的模块生态系统...
最后,爬虫将抓取到的图片URL下载到本地。这通常涉及到异步操作,因为每个图片的下载可能需要一定时间,为了提高效率,可以采用并发下载的方式,但要注意不要过于频繁,以免对目标网站造成过大压力,引起反爬策略。 ...
从标题、描述和部分内容中,我们可以提取以下知识点: 1. Nodejs基础:Nodejs是一种基于Chrome V8引擎的JavaScript运行环境,能够支持...这些知识点的结合,共同构成了一个Nodejs环境下批量下载图片的基础框架。
这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。...
这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。...
如果一个链接符合下载条件(例如指向图片或视频文件),则使用crawler_handle.addDown方法将该链接加入下载队列;如果一个链接不符合下载条件(例如指向CSS或JavaScript文件),则使用crawler_handle.addPage方法将...
nodejs自动批量翻译中文到其它语言.pdf
Nodejs导出Excel带图片,Nodejs后台导出带图片Excel 本资源内有说明及使用安装等详细步骤,以及引入插件 由于nodejs导出Excel带图片的资源比较少,我也是找了许久才知道怎么写的,这里发布个收费的,望各位见谅!
早就听过爬虫,这几天开始学习nodejs,写了个爬虫https://github.com/leichangchun/node-crawlers/tree/master/superagent_cheerio_demo,爬取 博客园首页的文章标题、用户名、阅读数、推荐数和用户头像,现做个小...