CN109491744A - 一种网页截图系统和方法 - Google Patents
一种网页截图系统和方法 Download PDFInfo
- Publication number
- CN109491744A CN109491744A CN201811310736.3A CN201811310736A CN109491744A CN 109491744 A CN109491744 A CN 109491744A CN 201811310736 A CN201811310736 A CN 201811310736A CN 109491744 A CN109491744 A CN 109491744A
- Authority
- CN
- China
- Prior art keywords
- screenshot
- server
- interface
- browser
- client
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种网页截图系统和方法,系统包括客户端和服务端,客户端用于供用户输入需要截图的网页URL和其他配置参数,并通过网页浏览器、命令行工具或编程语言程序的方式向服务端API接口发送HTTP请求;服务端设置有网络信息获取接口、图片获取接口和Puppteer无头浏览器;服务端接受客户端发送过来的参数,通过Puppteer无头浏览器访问互联网,在各个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理,最后将数据返回给客户端。本发明通过API进行截图操作,可以有效的与其他程序进行交互,达到自动化批量截图的目的,还可以通过传入参数,达到全屏幕或固定长宽的截图效果。
Description
技术领域
本发明涉及网页截图技术领域,具体为一种网页截图系统和方法。
背景技术
现有的网页截图方案大多数采用客户端截图工具的方式,如使用电脑自带的屏幕截图工具、腾讯公司的QQ截图工具。这些方式通常需要人工进行截图分辨率的操作,效率低且不精准。而且不具备与服务端交互的功能。
现有技术中,安装客户端截图工具或浏览器插件,对需要截图的区域进行人工截图操作,调整窗口大小,再保存到本地。但现有的截图工具软件仅能对展现在客户端的显示屏幕上的网页部分进行截图操作,而无法实现在整个网页页面内的截图操作;同时人工截图操作繁琐,当有批量截图需求时,这种技术方案的效率很低;而且缺少与服务端通信的机制,当需要将图片提供给用户浏览时,还需要上传到图片服务器。
因此需要一种方法,能够模拟浏览器行为进行截图操作,并实现程序与服务端交互的功能。
术语解释:
Puppeteer:是Google Chrome团队官方的无界面(Headless)Chrome工具,它是一个Node库,提供了一个高级的API来控制DevTools协议上的无头版Chrome。也可以配置为使用完整(非无头)的Chrome。
Express:是一种保持最低程度规模的灵活Node.js Web应用程序框架,为Web和移动应用程序提供一组强大的功能。
API:应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。
发明内容
针对上述问题,本发明的目的在于提供一种能够实现服务端网页截图API功能,用户不需要下载任何客户端截图工具就可以实现网页截图的系统和方法。技术方案如下:
一种网页截图系统,包括客户端和服务端;
客户端用于供用户输入需要截图的网页URL和其他配置参数,并通过网页浏览器、命令行工具或编程语言程序的方式向服务端API接口发送HTTP请求;
服务端设置有网络信息获取接口、图片获取接口和Puppteer无头浏览器;
服务端接受客户端发送过来的参数,通过Puppteer无头浏览器访问互联网,在各个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理,最后将数据返回给客户端。
进一步的,所述图片获取接口包括PNG格式图片获取接口、JPEG格式图片获取接口和PDF格式图片获取接口。
一种网页截图方法,包括以下步骤:
步骤1:用户从客户端输入需要截图的网页URL和其他配置参数;
步骤2:客户端通过网页浏览器、命令行工具或编程语言程序方式向服务端API接口发送
HTTP请求;
步骤3:服务端接受客户端发送过来的HTTP请求中的参数,通过Puppteer无头浏览器访
问请求截图的网址;
步骤4:在服务端的四个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方
法进行数据处理;
步骤5:通过Web框架Express封装这四个接口,提供服务端API,用户或程序通过访问这些API接口获取网站的截图信息更进一步的,。
更进一步的,所述HTTP请求中的参数包括:需要访问的网页地址、像素值长宽、请求头、是否截取整个页面的标记。
更进一步的,所述步骤4具体为:
服务端的网站信息获取接口通过调用puppeteer无头浏览器内置的page.title()方法,获取网站的标题,通过正则表达式获取网站的描述,通过page.screenshot()获取网页截图,将获取的截图通过转码,以JSON格式返回网站标题、网站描述、base64后的网页截图图片信息;
PNG格式图片获取接口通过调用page.screenshot()方法获取网页截图,直接返回png格式图片;
JPEG格式图片获取接口通过调用page.screenshot()方法获取网页截图,直接返回jpeg格式图片;
PDF格式图片获取接口通过调用page.pdf()方法获取网页PDF截图,直接返回PDF格式图片。
本发明的有益效果是:本发明通过对Headless Chrome Node API—Puppeteer进行封装,实现服务端网页截图API功能,用户不需要下载任何客户端截图工具就可以实现网页截图;通过API进行截图操作,可以有效的与其他程序进行交互,达到自动化批量截图的目的;还可以通过传入参数,达到全屏幕或固定长宽的截图效果。
附图说明
图1为本发明网页截图系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。如图1所示,本发明的网页截图系统,包括客户端和服务端。
其中,客户端用于供用户输入需要截图的网页URL和其他配置参数,并通过网页浏览器、命令行工具或编程语言程序的方式向服务端API接口发送HTTP请求。
服务端可以部署在任意服务器上(Linux,Windows等),如本机http://localhost:8000。服务端设置有网络信息获取接口、PNG格式图片获取接口、JPEG格式图片获取接口、PDF格式图片获取接口和Puppteer无头浏览器;服务端接受客户端发送过来的参数,通过Puppteer无头浏览器访问互联网,在各个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理,最后将数据返回给客户端。
本网页截图方法的步骤流程如下:
步骤1:用户从客户端输入需要截图的网页URL和其他配置参数。
步骤2:客户端通过网页浏览器、命令行工具或编程语言程序方式向服务端API接口发送HTTP请求。
步骤3:服务端接受客户端发送过来的HTTP请求中的参数,通过Puppteer无头浏览器访问请求截图的网址。
各个API接口所需要的参数:
url:需要访问的网页地址,如需要截取百度网站,则url是https://baidu.com
viewport:像素值长宽{“width”:720,“height”:1280}
headers:请求头
fullPage:是否截取整个页面,可选值1或0。
步骤4:在服务端的四个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理。
当接口接受到参数时,通过无头浏览器Puppeteer访问参数url提供的地址。将返回页面对象交给各个接口处理:
1)网站信息获取接口(/info):通过调用puppeteer内置的page.title()方法,获取网站的标题,通过正则表达式page.$x(‘/html/head/meta[@name="description"]/@content’)获取网站的描述,通过page.screenshot()获取网页截图,将获取的截图通过pic.toString('base64')转码,以JSON格式返回网站标题、网站描述、base64后的网页截图图片信息。
2)PNG格式图片获取接口(/png):通过调用page.screenshot()方法获取网页截图,直接返回png格式图片。
3)JPEG格式图片获取接口(/jepg):通过调用page.screenshot()方法获取网页截图,直接返回jpeg格式图片。
4)PDF格式图片获取接口(/pdf):通过调用page.pdf()方法获取网页PDF截图,直接返回PDF格式图片。
步骤5:通过Web框架Express封装这四个接口,提供服务端API,用户或程序通过访问这些API接口获取网站的截图信息。
例如通过访问http://localhost:8000/info?url=http://example.com可以获取网站example.com的首页标题,描述,base64后的图片信息;
访问http://localhost:8000/png?url=http://example.com可以获取example.com网站的png截图。
访问http://localhost:8000/png?url=http://example.com&fullPage=true可以获取example.com网站全屏幕的png截图。
Claims (5)
1.一种网页截图系统,其特征在于,包括客户端和服务端;
客户端用于供用户输入需要截图的网页URL和其他配置参数,并通过网页浏览器、命令行工具或编程语言程序的方式向服务端API接口发送HTTP请求;
服务端设置有网络信息获取接口、图片获取接口和Puppteer无头浏览器;
服务端接受客户端发送过来的参数,通过Puppteer无头浏览器访问互联网,在各个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理,最后将数据返回给客户端。
2.根据权利要求1所述的网页截图系统,其特征在于,所述图片获取接口包括PNG格式图片获取接口、JPEG格式图片获取接口和PDF格式图片获取接口。
3.一种网页截图方法,其特征在于,包括以下步骤:
步骤1:用户从客户端输入需要截图的网页URL和其他配置参数;
步骤2:客户端通过网页浏览器、命令行工具或编程语言程序方式向服务端API接口发送HTTP请求;
步骤3:服务端接受客户端发送过来的HTTP请求中的参数,通过Puppteer无头浏览器访问请求截图的网址;
步骤4:在服务端的四个接口模块中,将返回的结果通过Puppteer无头浏览器中的内置方法进行数据处理;
步骤5:通过Web框架Express封装这四个接口,提供服务端API,用户或程序通过访问这些API接口获取网站的截图信息。
4.根据权利要求3所述的网页截图方法,其特征在于,所述HTTP请求中的参数包括:需要访问的网页地址、像素值长宽、请求头、是否截取整个页面的标记。
5.根据权利要求3所述的网页截图方法,其特征在于,所述步骤4具体为:
服务端的网站信息获取接口通过调用puppeteer无头浏览器内置的page.title()方法,获取网站的标题,通过正则表达式获取网站的描述,通过page.screenshot()获取网页截图,将获取的截图通过转码,以JSON格式返回网站标题、网站描述、base64后的网页截图图片信息;
PNG格式图片获取接口通过调用page.screenshot()方法获取网页截图,直接返回png格式图片;
JPEG格式图片获取接口通过调用page.screenshot()方法获取网页截图,直接返回jpeg格式图片;
PDF格式图片获取接口通过调用page.pdf()方法获取网页PDF截图,直接返回PDF格式图片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811310736.3A CN109491744A (zh) | 2018-11-06 | 2018-11-06 | 一种网页截图系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811310736.3A CN109491744A (zh) | 2018-11-06 | 2018-11-06 | 一种网页截图系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109491744A true CN109491744A (zh) | 2019-03-19 |
Family
ID=65693916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811310736.3A Pending CN109491744A (zh) | 2018-11-06 | 2018-11-06 | 一种网页截图系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491744A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515514A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN110825540A (zh) * | 2019-11-14 | 2020-02-21 | 中国民航信息网络股份有限公司 | 一种票证影像的生成方法及装置 |
CN110989897A (zh) * | 2019-11-21 | 2020-04-10 | 深圳市富途网络科技有限公司 | 截屏图片的获取方法、装置、终端设备及存储介质 |
CN111399732A (zh) * | 2020-03-13 | 2020-07-10 | 深圳市珍爱云信息技术有限公司 | 网页截图方法、装置、计算机设备和存储介质 |
CN112257004A (zh) * | 2020-11-06 | 2021-01-22 | 微医云(杭州)控股有限公司 | 备份页面的方法、装置、服务器及存储介质 |
CN112579948A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 网页截图方法、装置及存储介质、电子设备 |
CN112596833A (zh) * | 2020-12-21 | 2021-04-02 | 北京鸿腾智能科技有限公司 | 网页截图生成方法、装置、设备以及存储介质 |
CN112925965A (zh) * | 2019-12-05 | 2021-06-08 | 贵州白山云科技股份有限公司 | 一种识别网站插件的方法、装置、设备及介质 |
CN112948737A (zh) * | 2021-03-15 | 2021-06-11 | 亿海蓝(北京)数据技术股份公司 | Html页面截图方法及系统 |
CN113032707A (zh) * | 2021-03-25 | 2021-06-25 | 成都新希望金融信息有限公司 | 生成网页截图的方法、装置及电子设备 |
CN113382083A (zh) * | 2021-06-30 | 2021-09-10 | 建信金融科技有限责任公司 | 一种网页截图方法和装置 |
CN113407090A (zh) * | 2021-05-31 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 界面取色方法、装置、电子设备及存储介质 |
CN113590564A (zh) * | 2021-07-29 | 2021-11-02 | 挂号网(杭州)科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113704187A (zh) * | 2020-05-21 | 2021-11-26 | 北京字节跳动网络技术有限公司 | 用于生成文件的方法和装置 |
US11199951B1 (en) * | 2020-05-26 | 2021-12-14 | Salesforce.Com, Inc. | Database system dashboard snapshotting |
CN113888665A (zh) * | 2021-12-07 | 2022-01-04 | 杭州启博海纳数字科技有限公司 | 一种基于Puppeteer和CGAN的海报自主生成系统 |
CN115329225A (zh) * | 2022-10-18 | 2022-11-11 | 中孚信息股份有限公司 | 基于服务端浏览器的页面预渲染方法、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280490A1 (en) * | 2013-03-15 | 2014-09-18 | Atakan Artun | Systems and methods for visual communication |
CN106227780A (zh) * | 2016-07-18 | 2016-12-14 | 中国科学院信息工程研究所 | 一种海量网页的自动化截图取证方法和系统 |
CN106406851A (zh) * | 2016-08-24 | 2017-02-15 | 北京松鼠山科技有限公司 | 一种网页截图方法、系统 |
CN108563382A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 基于安卓系统的截屏方法及装置 |
-
2018
- 2018-11-06 CN CN201811310736.3A patent/CN109491744A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280490A1 (en) * | 2013-03-15 | 2014-09-18 | Atakan Artun | Systems and methods for visual communication |
CN106227780A (zh) * | 2016-07-18 | 2016-12-14 | 中国科学院信息工程研究所 | 一种海量网页的自动化截图取证方法和系统 |
CN106406851A (zh) * | 2016-08-24 | 2017-02-15 | 北京松鼠山科技有限公司 | 一种网页截图方法、系统 |
CN108563382A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 基于安卓系统的截屏方法及装置 |
Non-Patent Citations (1)
Title |
---|
古早人说说: "使用puppeteer之全网页截图-第一个版本", 《HTTPS://WWW.JIANSHU.COM/P/8AF515D3D669?FROM=SINGLEMESSAGE》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515514A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN110515514B (zh) * | 2019-08-30 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN112579948A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 网页截图方法、装置及存储介质、电子设备 |
CN110825540A (zh) * | 2019-11-14 | 2020-02-21 | 中国民航信息网络股份有限公司 | 一种票证影像的生成方法及装置 |
CN110989897A (zh) * | 2019-11-21 | 2020-04-10 | 深圳市富途网络科技有限公司 | 截屏图片的获取方法、装置、终端设备及存储介质 |
CN110989897B (zh) * | 2019-11-21 | 2021-12-03 | 富途网络科技(深圳)有限公司 | 截屏图片的获取方法、装置、终端设备及存储介质 |
CN112925965A (zh) * | 2019-12-05 | 2021-06-08 | 贵州白山云科技股份有限公司 | 一种识别网站插件的方法、装置、设备及介质 |
CN111399732A (zh) * | 2020-03-13 | 2020-07-10 | 深圳市珍爱云信息技术有限公司 | 网页截图方法、装置、计算机设备和存储介质 |
CN113704187B (zh) * | 2020-05-21 | 2024-05-28 | 北京字节跳动网络技术有限公司 | 用于生成文件的方法、装置、服务器及计算机可读介质 |
CN113704187A (zh) * | 2020-05-21 | 2021-11-26 | 北京字节跳动网络技术有限公司 | 用于生成文件的方法和装置 |
US11199951B1 (en) * | 2020-05-26 | 2021-12-14 | Salesforce.Com, Inc. | Database system dashboard snapshotting |
CN112257004A (zh) * | 2020-11-06 | 2021-01-22 | 微医云(杭州)控股有限公司 | 备份页面的方法、装置、服务器及存储介质 |
CN112257004B (zh) * | 2020-11-06 | 2023-03-14 | 微医云(杭州)控股有限公司 | 备份页面的方法、装置、服务器及存储介质 |
CN112596833A (zh) * | 2020-12-21 | 2021-04-02 | 北京鸿腾智能科技有限公司 | 网页截图生成方法、装置、设备以及存储介质 |
CN112948737A (zh) * | 2021-03-15 | 2021-06-11 | 亿海蓝(北京)数据技术股份公司 | Html页面截图方法及系统 |
CN113032707A (zh) * | 2021-03-25 | 2021-06-25 | 成都新希望金融信息有限公司 | 生成网页截图的方法、装置及电子设备 |
CN113032707B (zh) * | 2021-03-25 | 2023-01-31 | 成都新希望金融信息有限公司 | 生成网页截图的方法、装置及电子设备 |
CN113407090A (zh) * | 2021-05-31 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 界面取色方法、装置、电子设备及存储介质 |
CN113382083A (zh) * | 2021-06-30 | 2021-09-10 | 建信金融科技有限责任公司 | 一种网页截图方法和装置 |
CN113590564A (zh) * | 2021-07-29 | 2021-11-02 | 挂号网(杭州)科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113590564B (zh) * | 2021-07-29 | 2024-03-01 | 挂号网(杭州)科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113888665B (zh) * | 2021-12-07 | 2022-04-19 | 杭州启博海纳数字科技有限公司 | 一种基于Puppeteer和CGAN的海报自主生成系统 |
CN113888665A (zh) * | 2021-12-07 | 2022-01-04 | 杭州启博海纳数字科技有限公司 | 一种基于Puppeteer和CGAN的海报自主生成系统 |
CN115329225A (zh) * | 2022-10-18 | 2022-11-11 | 中孚信息股份有限公司 | 基于服务端浏览器的页面预渲染方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491744A (zh) | 一种网页截图系统和方法 | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
US9141611B2 (en) | Aggregated web analytics request systems and methods | |
CN101079768B (zh) | 一种统计网页链接点击数据的方法 | |
CN103365862B (zh) | 一种用于生成与页面对应的图片的方法与设备 | |
US10542123B2 (en) | System and method for generating and monitoring feedback of a published webpage as implemented on a remote client | |
CN109213948B (zh) | 网页加载方法、中间服务器和网页加载系统 | |
US20240137401A1 (en) | Systems and Methods For Content Delivery Acceleration of Virtual Reality and Augmented Reality Web Pages | |
CN107040584B (zh) | 客户端下载图片的方法及装置 | |
CN105095280A (zh) | 一种浏览器缓存方法和装置 | |
CN113382083B (zh) | 一种网页截图方法和装置 | |
CN103268319A (zh) | 一种基于网页的云浏览器 | |
CN106897336A (zh) | 网页文件发送方法、网页渲染方法及装置、网页渲染系统 | |
CN103246699A (zh) | 一种基于浏览器的数据访问控制方法和装置 | |
CN111339456B (zh) | 预加载方法和装置 | |
CN103810193A (zh) | 网页元素屏蔽方法和装置 | |
Mardani et al. | Fawkes: Faster Mobile Page Loads via {App-Inspired} Static Templating | |
CN106547806B (zh) | 页面加载方法及装置 | |
CN103401926A (zh) | 一种提高网络资源访问速度的方法及装置 | |
CN111405033B (zh) | 数据采集方法、装置、计算机设备及存储介质 | |
CN114297544A (zh) | 一种远程浏览方法、装置、设备及存储介质 | |
CN104615597A (zh) | 浏览器中清除缓存文件的方法、装置和系统 | |
CN112307385A (zh) | 网页数据加载和处理方法、装置、电子设备及存储介质 | |
CN113094612A (zh) | 客户端加载网页的方法、装置、电子设备及介质 | |
KR101282975B1 (ko) | 문서 요소를 분리 구조화하여 표준화한 후 웹페이지를 재구성하는 웹화면 크롭 서버 장치 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190319 |