CN108228702A - 一种基于Nodejs爬虫抓取并下载图片的实现方法 - Google Patents
一种基于Nodejs爬虫抓取并下载图片的实现方法 Download PDFInfo
- Publication number
- CN108228702A CN108228702A CN201711016509.5A CN201711016509A CN108228702A CN 108228702 A CN108228702 A CN 108228702A CN 201711016509 A CN201711016509 A CN 201711016509A CN 108228702 A CN108228702 A CN 108228702A
- Authority
- CN
- China
- Prior art keywords
- modules
- picture
- npm
- responsible
- cheerio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及网页开发技术领域,特别是一种基于nodejs爬虫技术抓取并下载图片的实现方法。所述的方法是安装Node.js;然后实现负责响应网络请求的request模块、负责对抓取的数据进行处理的cheerio模块、负责下载图片的fs模块、负责格式化图片名称的path模块和处理异步并发的async模块;封装所有方法模块到JS文件并执行,等待检索完毕即可查看下载完的图片。本发明提供了一种便捷的网页信息获取方法。
Description
技术领域
本发明涉及网页开发技术领域,特别是一种基于nodejs爬虫技术抓取并下载并下载图片的实现方法。
背景技术
在网页开发过程中,经常需涉及到网页信息的获取问题。目前,爬取网页上的信息的方法经常需要通过后台服务器交换数据;对于前端开发人员来说实现上较为繁琐。
发明内容
本发明解决的技术问题在于提供一种基于Nodejs爬虫抓取并下载图片的实现方法;可以避免后台服务器的数据交换;实现简便。
本发明解决上述技术问题的技术方案是:
所述的方法是安装Node.js;然后实现负责响应网络请求的request模块、负责对抓取的数据进行处理的cheerio模块、负责下载图片的fs模块、负责格式化图片名称的path模块和处理异步并发的async模块;封装所有方法模块到JS文件并执行,等待检索完毕即可查看下载完的图片。
安装NodeJs之后,在项目空间中创建需要的项目目录,并通过npm命令对项目进行初始化。
所述的request模块、cheerio模块、fs模块、path模块和async模块,进入要安装插件的目录,用npm软件安装包安装;输入命令分别为npm install request、npm installcheerio、npm install fs、npm install path、npm install async。
所述的方法是:
在循环里面配置获取url对象和headers对象,把集合封装到option[]网址链接数组里;
调用fs模块的函数方法下载图片;
调用path模块的函数方法把图片的src地址截取图片名称出来;
调用cheerio加载body内容,根据图片src标签的定位创建抓取方法,将src地址添加到图片格式化方法里,获取图片名称,把图片名称传给图片的下载方法,最终完成整个图片下载的操作;
利用async的mapLimit方法实现限定并发数为3的调用,最终打印输出图片的检索结果。
本发明整个实现方法结合爬虫技术遍历图片下载到本地文件的一个功能,不需要后台服务器的交换,可以直接在页面上实现,对于前端开发人员能够很容易上手,对于开发的技术领域和创新有着实在的参考价值。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
图2为本发明的代码截图举例。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造获得的方案,都属于本发明保护的范围。
以下是本发明关于一种基于Node.js爬虫抓取并下载图片的实现方法的重要功能点实现方法:
安装Node.js:NodeJs是本次发明所必须的核心工具,安装好NodeJs之后,我们就可以在我们的项目空间中创建我们的项目目录,并通过npm命令对项目进行初始化,进行下一步安装本次发明所需要的插件。
1.安装负责响应网络请求的request模块:进入要安装插件的目录,直接用npm软件安装包安装,输入命令npm install request。
2.安装负责对抓取的数据进行处理的cheerio模块:进入要安装插件的目录,直接用npm软件安装包安装,输入命令npm installcheerio。
3.安装负责下载图片的fs模块:进入要安装插件的目录,直接用npm软件安装包安装,输入命令npm installfs。
4.安装负责格式化图片名称的path模块:进入要安装插件的目录,直接用npm软件安装包安装,输入命令npm installpath。
5.安装负责处理异步并发的async模块:进入要安装插件的目录,直接用npm软件安装包安装,输入命令npm installasync。
6.创建获取图片库地址链接的数组方法:在循环里面配置获取url对象和headers对象,把集合封装到option[]网址链接数组里。
7.创建图片下载方法:调用fs模块的函数方法下载图片。
8.创建格式化图片名称的方法:调用path模块的函数方法把图片的src地址截取图片名称出来。
10.创建抓取图片的逻辑方法:调用cheerio加载body内容,根据图片src标签的定位创建抓取方法,将src地址添加到图片格式化方法里,获取图片名称,把图片名称传给图片的下载方法,最终完成整个图片下载的操作。
11.创建异步逻辑控制方法:利用async的mapLimit方法实现限定并发数为3的调用,最终打印输出图片的检索结果。
12.完毕。
爬取网页上的信息,实际上就是将目标网站的页面html下载下来,然后通过各种方式(如正则表达式)获取我们想要的信息并保存起来。从这点看来,使用Nodejs来写网页爬虫便有着相当大的优势:
a)Nodejs采用了Javascript的语法规则,是前端开发人员能够很容易上手。
b)Nodejs写爬虫可以避免写一大堆正则表达式去匹配元素,我们可以用jquery的语法直接获取dom对象,方便快捷,可读性强。
c)Nodejs解决了Javascript无法直接操作系统文件的短板,让我们可以轻松操作系统中文件。
d)Nodejs提供了可以下载图片的插件,使用起来更加方便。
Claims (5)
1.一种基于Nodejs爬虫抓取并下载图片的实现方法,其特征在于:所述的方法是安装Node.js;然后实现负责响应网络请求的request模块、负责对抓取的数据进行处理的cheerio模块、负责下载图片的fs模块、负责格式化图片名称的path模块和处理异步并发的async模块;封装所有方法模块到JS文件并执行,等待检索完毕即可查看下载完的图片。
2.根据权利要求1所述的方法,其特征在于:安装NodeJs之后,在项目空间中创建需要的项目目录,并通过npm命令对项目进行初始化。
3.根据权利要求1所述的方法,其特征在于:所述的request模块、cheerio模块、fs模块、path模块和async模块,进入要安装插件的目录,用npm软件安装包安装;输入命令分别为npm install request、npm install cheerio、npm install fs、npm installpath、npminstallasync。
4.根据权利要求2所述的方法,其特征在于:所述的request模块、cheerio模块、fs模块、path模块和async模块,进入要安装插件的目录,用npm软件安装包安装;输入命令分别为npm install request、npm install cheerio、npm install fs、npm installpath、npminstallasync。
5.根据权利要求1至4任一项所述的方法,其特征在于:所述的方法是:
在循环里面配置获取url对象和headers对象,把集合封装到option[]网址链接数组里;
调用fs模块的函数方法下载图片;
调用path模块的函数方法把图片的src地址截取图片名称出来;
调用cheerio加载body内容,根据图片src标签的定位创建抓取方法,将src地址添加到图片格式化方法里,获取图片名称,把图片名称传给图片的下载方法,最终完成整个图片下载的操作;
利用async的mapLimit方法实现限定并发数为3的调用,最终打印输出图片的检索结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711016509.5A CN108228702A (zh) | 2017-10-25 | 2017-10-25 | 一种基于Nodejs爬虫抓取并下载图片的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711016509.5A CN108228702A (zh) | 2017-10-25 | 2017-10-25 | 一种基于Nodejs爬虫抓取并下载图片的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108228702A true CN108228702A (zh) | 2018-06-29 |
Family
ID=62654613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711016509.5A Withdrawn CN108228702A (zh) | 2017-10-25 | 2017-10-25 | 一种基于Nodejs爬虫抓取并下载图片的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228702A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380413A (zh) * | 2020-11-13 | 2021-02-19 | 平安普惠企业管理有限公司 | 基于Node.js的爬虫方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095442A (zh) * | 2016-06-13 | 2016-11-09 | 福州智永信息科技有限公司 | 基于web的自动高速出包方法 |
-
2017
- 2017-10-25 CN CN201711016509.5A patent/CN108228702A/zh not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095442A (zh) * | 2016-06-13 | 2016-11-09 | 福州智永信息科技有限公司 | 基于web的自动高速出包方法 |
Non-Patent Citations (1)
Title |
---|
阿冰介: "nodejs爬虫----爬取煎蛋网美女图片", 《HTTPS://BLOG.CSDN.NET/DEXING07/ARTICLE/DETAILS/54289644》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380413A (zh) * | 2020-11-13 | 2021-02-19 | 平安普惠企业管理有限公司 | 基于Node.js的爬虫方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11647096B2 (en) | Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service | |
CN100535901C (zh) | 一种更新动态网页的方法及系统 | |
CN100535900C (zh) | 用于提供异步门户页的方法和系统 | |
US10015226B2 (en) | Methods for making AJAX web applications bookmarkable and crawlable and devices thereof | |
CN102982162B (zh) | 网页信息的获取系统 | |
CN101103352A (zh) | 提供和处理可执行网页内容的系统和方法 | |
CN110351325B (zh) | 一种数据处理方法及相关设备 | |
CN106294658A (zh) | 网页快速展示方法和装置 | |
EP3156919A1 (en) | Methods for transforming a server side template into a client side template and devices thereof | |
CN105068806A (zh) | 一种浏览器缓存控制方法及系统 | |
CN109670126B (zh) | 一种跨境访问加速方法及装置 | |
CN110442519A (zh) | 一种崩溃文件处理方法、装置、电子设备及存储介质 | |
CN108563728A (zh) | 一种通过浏览器上传医学影像文件的方法和装置 | |
CN109145236A (zh) | 页面文件处理方法、装置及系统 | |
CN103561082B (zh) | 压缩请求的处理方法及服务器 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
CN105786476A (zh) | 移动客户端与服务器之间的数据处理方法及系统 | |
CN102497478A (zh) | 一种手机用户快速访问互联网的方法 | |
CN108228702A (zh) | 一种基于Nodejs爬虫抓取并下载图片的实现方法 | |
CN109561131A (zh) | 一种基于编程语言下载excel数据的方法及电子设备 | |
CN105094787B (zh) | 企业互联网应用的处理方法及装置 | |
CN103458037A (zh) | 一种在资源受限环境下提供复杂网页应用的方法和设备 | |
CN102156697A (zh) | 一种通过微件实现网页应用的方法及终端设备 | |
CN103347069A (zh) | 网络访问的实现方法及装置 | |
US9015682B1 (en) | Computer code transformations to create synthetic global scopes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180629 |