CN110309465B - 一种无界面仿真浏览器组件设计方法及装置 - Google Patents
一种无界面仿真浏览器组件设计方法及装置 Download PDFInfo
- Publication number
- CN110309465B CN110309465B CN201810184152.XA CN201810184152A CN110309465B CN 110309465 B CN110309465 B CN 110309465B CN 201810184152 A CN201810184152 A CN 201810184152A CN 110309465 B CN110309465 B CN 110309465B
- Authority
- CN
- China
- Prior art keywords
- browser
- interface
- deployment
- cluster
- engine
- 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.)
- Active
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
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种无界面仿真浏览器内核组件设计方法及装置,其包括浏览器内核引擎和部署架构,所述浏览器内核引擎包括控制器、模拟器、构造器、持久化模块和浏览器内核,所述浏览器内核由JS引擎和渲染引擎两部分组成;所述单机部署,可嵌入应用程序内部独立使用;所述集群部署,可结合数据库集群大规模集群部署。该技术方案支持JS动态内容解析,可获得最终的HTML页面,可集群爬取采集数据,可扩展,效率高,应用范围广,还可应用于大规模定向爬虫云服务、大规模互联网数据采集服务以及大规模集群测试云服务等相关领域。
Description
技术领域
本申请涉及计算机技术领域,具体涉及浏览器技术领域,尤其涉及一种无界面仿真浏览器内核组件设计方法及装置。
背景技术
浏览器是可以显示网页服务器或者文件系统的HTML(HyperTextMarkupLanguage,超文本标记语言)文件内容,并让用户与这些文件交互的一种客户端应用软件。浏览器用来显示在网络内的文字、图像及其他信息。这些文字或图像,可以是连接其他网址的超链接,用户可迅速及轻易地浏览各种信息。
随着JavaScript技术的发展以及HTML5的普及,越来越多的现代WEB应用使用了JS页面动态生成或渲染技术来生成WEB页面,即使用AJAX、WebSocket以及SererPush等WEB通信技术,在页面初始化或页面使用过程中动态获取服务器数据,然后通过JavaScript把数据渲染成最终的HTML页面,呈现在浏览器用户面前。
但JS动态生成技术的应用,也使传统的Http客户端(HttpClient)无法获取到最终HTML,而仅仅是不包含实际数据的页面模版,进而导致一些如:网络爬虫和自动化测试框架等失效问题
传统的应用程序通过HttpClient直接访问需要的WEB资源,HttpClient在接收到WEB服务器返回的HTML数据直接返回给应用程序。如果JS页面生成技术,则技术开发没有任何问题,可以返回最终的HTML,但如果WEB应用使用的是传统的技术开发,那么这种方法只能拿到不含业务数据的HTML模版,而不是用户使用浏览器所看到的最终的HTML呈现。
本发明提供一种无界面仿真浏览器组件设计方法及装置,除了可以解决由JS动态生成技术所带来的无法获得最终HTML页面的问题还进一步解决了浏览器标识(UserAgent)动态生成、模拟用户键盘鼠标动作、大规模集群爬取问题。
发明内容
本发明的目的在于提供一种无界面仿真浏览器组件设计方法及装置,以解决由JS动态生成技术所带来的无法获得最终HTML页面的问题进一步解决浏览器标识(UserAgent)动态生成、模拟用户键盘鼠标动作、大规模集群以及性能问题。
为了解决上述问题,本发明采用了如下的技术方案
一种无界面仿真浏览器组件设计,其包括浏览器内核引擎和部署架构,所述浏览器内核引擎包括控制器、模拟器、构造器、持久化模块和浏览器内核,所述部署架构包括单机部署和集群部署;所述控制器与应用程序交换,提供应用程序可调用的程序接口(API),同时组织和协调浏览器内核引擎的其它模块配置工作,实现程序接口功能;所述模拟器通过模拟鼠标和键盘事件来模拟用户在浏览器内所发生的真实用户行为和动作;所述构造器生成真实的浏览器标识即UserAgent信息,所述持久化模块保存持久化信息;所述浏览器内核由JS引擎和渲染引擎两部分组成;所述单机部署,可嵌入应用程序内部独立使用;所述集群部署,可结合数据库集群大规模集群部署。
进一步的,所述模拟器模拟用户的行为和动作,可通过扩展,自定义模拟由基础动作而组成的任何组合动作。
进一步的,所述构造器通过持久化模块中海量存储的的UserAgent信息,根据需要生成真实UserAgent标识。
进一步的,所述构造器可根据需要生成任何操作系统(包括PC和移动终端)、操作系统版本、CPU架构、浏览器类型、浏览器版本号的真实UserAgent信息,还可以生成一些知名的爬虫UserAgent。
进一步的,所述构造器可通过部署架构采集的海量真实浏览器的UserAgent,以提高模拟浏览器种类和不同版本UserAgent的能力。
进一步的,所述部署架构可大规模爬取数据,将其存储于持久化模块的数据库中。
进一步的,所述持久化模块可通过爬取存储的数据,进行扩展以提高本地和集群存储的伸缩性,便于大规模集群应用。
进一步的,所述浏览器内核可通过实现统一的接口更换为任何一种浏览器引擎,或根据UserAgent动态选用不同的浏览器引擎。
进一步的,所述JS引擎和渲染引擎可以为内置V8JS引擎和webkit渲染引擎。
本发明专利的有益效果:
所述引擎和渲染引擎,可除掉用户GUI界面的真实渲染能力,仅保留JS解析执行以及虚拟Dom渲染,可将虚拟Dom渲染后的效果保存为图片、pdf等格式。
所述浏览器内核支持JS页面动态生成技术,通过浏览器内核,程序可以完全解析并执行JS代码,并进行模拟DOM的渲染,最终返回的是HTML或截图。
所述模拟通过模拟器,支持用户动作,程序可以模仿用户行为动作,进行点击、输入、下接和拖拽等动作,用户也可自定义组合动作。
所述构造器可不断扩充更新持久化数据以提高模拟真实UserAgent标识的能力,可使99%的反爬虫程序无法识别,进而实现浏览器的高仿真化,提高了爬取数据的能力。
所述持久化模块的数据库可为sqlite嵌入式数据库,存储的信息具体包括cookie、LocalStorage、SessionStorage、CacheStorage、IndexedDB、WebSql等在内的信息。
所述浏览器内核无界面,通过无界面化,避免了大量的真实渲染,在运行时,比普通浏览器内核如Trident(IE内核)占用内存小,从而大幅度提高了效率。
所述浏览器内核可伸缩性强,灵活的部署架构即可单部署,也可以进行大规模集群部署。
所述浏览器的应用服务器的集群部署平均响应时间短,吞吐量更好,可解决单机部署压力过大的问题;所述单机部署执行单任务时,任务完成得更快;两者结合可爬取采集海量的数据。
所述浏览器用途广泛,这种技术可广泛的应用于爬虫、大规模数据采集、自动化测试、页面监控和网页截屏等所有需要进行页面请求的领域,适用范围及广。
一种无界面仿真浏览器组件设计方法及装置,可集群,可扩展,支持JS动态内容解析,性能好,应用范围广,可应用于大规模定向爬虫云服务、大规模互联网数据采集服务以及大规模集群测试云服务等相关领域。
附图说明
图1为本发明的一种无界面仿真浏览器组件设计方法及装置的核心工作示意图。
图2为传统HttpClient工作示意图。
图3为本发明的一种无界面仿真浏览器组件设计方法及装置的仿真浏览器内核引擎逻辑架构图。
图4为本发明的一种无界面仿真浏览器内核引擎设计方法及装置的单机部署架构图。
图5为本发明的一种无界面仿真浏览器内核引擎设计方法及装置的集群部署架构图。
具体实施方式
具体实施案例1:
如图1、图4和图5所示,一种无界面仿真浏览器组件包括浏览器内核引擎和部署架构,所述浏览器内核引擎包括控制器、模拟器、构造器、持久化模块和浏览器内核,所述部署架构包括单机部署和集群部署;所述控制器与应用程序交换,提供应用程序可调用的程序接口(API),同时组织和协调浏览器内核引擎的其它模块配置工作,实现程序接口功能;所述模拟器通过模拟鼠标和键盘事件来模拟用户在浏览器内所发生的真实用户行为和动作;所述构造器生成真实的浏览器标识即UserAgent信息,所述持久化模块保存持久化信息;所述浏览器内核由JS引擎和渲染引擎两部分组成;所述单机部署,可嵌入应用程序内部独立使用;所述集群部署,可结合数据库集群大规模集群部署。
所述模拟器模拟用户的行为和动作包括如点击、输入、下接和拖拽等动作。还可以通过扩展自定义由基础动作而组成的任何组合动作。
所述构造器可通过海量采集真实浏览器的UserAgent内至于持久化模块中,它可以根据需要生成任何操作系统(包括PC和移动终端)、操作系统版本、CPU架构、浏览器类型、浏览器版本号的真实UserAgent信息,甚至可以生成一些知名的爬虫UserAgent等。还可通过持续的采集,不断更新持久化数据,以及自定义提高模拟浏览器种类和不同版本UserAgent的能力。
所述持久化模块可通过扩展,提供本地和集群存储的伸缩性,大规模集群应用提供可能性和可扩展性,其存储信息的数据库可为sqlite嵌入式数据库。
所述持久化信息具体包括cookie、LocalStorage、SessionStorage、CacheStorage、IndexedDB、WebSql等在内的信息。
所述浏览器内核可通过实现统一的接口更换为任何一种浏览器引擎,或根据UserAgent动态选用不同的浏览器引擎。
如图4所示,所述单机部署架构包括应用程序、仿真内核引擎和嵌入式数据库,如图5所示,所述集群部署包括数据库集群和应用集群,所述应用集群包括应用程序、仿真内核引擎和嵌入式数据库;所述应用集群向数据库集群爬取的数据统一存储于嵌入式数据库中,然后再做进一步处理;所述数据库集群,是指利用至少两台或者多台数据库服务器,构成一个虚拟单一数据库逻辑映像,可向客户端提供透明的数据服务。
本发明的一种无界面仿真浏览器组件工作过程,如图1所示:
步骤1:应用程序请求控制器获取一个URL的页面内容。
步骤2:控制器请求构造器构造UserAgent标识,构造器请求持久化模块查询标识库并返回给控制器。
步骤3:控制器请求持久化模块查询当前URL相关持久化数据,组装HTTP请求头和参数。
步骤4:控制器携带UserAgent和相关持久化数据请求浏览器内核访问URL。
步骤5:浏览器内核访问并加载URL相关资源,执行JS代码,进行虚拟Dom的模拟渲染。
步骤6:控制器请求模拟器模拟用户动作,模拟器模拟并鼠标和键盘事件发送给浏览器内核执行模拟动作
步骤7:浏览器内核将最终的HTML或截图,通过控制器返回给应用程序。
以上所述实施例仅表达了本发明的几种实施方式中的较佳的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种无界面仿真浏览器组件,其包括浏览器内核引擎和部署架构,所述浏览器内核引擎包括控制器、模拟器、构造器、持久化模块和浏览器内核,所述部署架构包括单机部署和集群部署;所述控制器与应用程序交换,提供应用程序可调用的程序接口(API),同时组织和协调浏览器内核引擎的其它模块配置工作,实现程序接口功能;所述模拟器通过模拟鼠标和键盘事件来模拟用户在浏览器内所发生的真实用户行为和动作;所述构造器生成真实的浏览器标识即UserAgent信息,所述持久化模块保存持久化信息;所述浏览器内核由JS引擎和渲染引擎两部分组成;所述单机部署,可嵌入应用程序内部独立使用;所述集群部署,可结合数据库集群大规模集群部署。
2.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述模拟器模拟用户的行为和动作,通过扩展,自定义模拟由基础动作而组成的任何组合动作。
3.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述构造器通过持久化模块中海量存储的UserAgent信息,根据需要生成真实UserAgent标识。
4.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述构造器可根据爬取数据的需要生成任何操作系统、操作系统版本、CPU架构、浏览器类型、浏览器版本号和知名爬虫的真实UserAgent信息。
5.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述构造器通过部署架构持续采集海量的真实浏览器的UserAgent,自定义提高模拟浏览器种类和不同版本UserAgent的能力。
6.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述部署架构可大规模爬取采集数据,将其存储于持久化模块的数据库中。
7.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述持久化模块可通过存储的数据,进行扩展以提高本地和集群存储的伸缩性,便于大规模集群应用。
8.如权利要求1所述一种无界面仿真浏览器组件,其特征在于:所述浏览器内核可以通过实现统一的接口更换为任何一种浏览器引擎,或根据UserAgent动态选用不同的浏览器引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184152.XA CN110309465B (zh) | 2018-03-07 | 2018-03-07 | 一种无界面仿真浏览器组件设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184152.XA CN110309465B (zh) | 2018-03-07 | 2018-03-07 | 一种无界面仿真浏览器组件设计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309465A CN110309465A (zh) | 2019-10-08 |
CN110309465B true CN110309465B (zh) | 2023-07-25 |
Family
ID=68073337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810184152.XA Active CN110309465B (zh) | 2018-03-07 | 2018-03-07 | 一种无界面仿真浏览器组件设计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309465B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314298B (zh) * | 2020-01-16 | 2020-12-29 | 北京金堤科技有限公司 | 验证识别方法和装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049812A (en) * | 1996-11-18 | 2000-04-11 | International Business Machines Corp. | Browser and plural active URL manager for network computers |
US8285813B1 (en) * | 2007-12-05 | 2012-10-09 | Appcelerator, Inc. | System and method for emulating different user agents on a server |
US20140047359A1 (en) * | 2012-08-08 | 2014-02-13 | Arnstein Osnes Teigene | Mechanism for adding new search modes to user agent |
CN106230831B (zh) * | 2016-05-31 | 2019-07-09 | 众安在线财产保险股份有限公司 | 一种识别浏览器唯一性和风险特征的方法和系统 |
-
2018
- 2018-03-07 CN CN201810184152.XA patent/CN110309465B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110309465A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN108304498B (zh) | 网页数据采集方法、装置、计算机设备和存储介质 | |
JP5695027B2 (ja) | Ajaxウェブページコンテンツを取得する方法およびシステム | |
US8365188B2 (en) | Content management | |
US20130060915A1 (en) | Aggregated web analytics request systems and methods | |
US10877825B2 (en) | System for offline object based storage and mocking of rest responses | |
CN102402518A (zh) | 一种访问网页的方法及装置 | |
JP2012514801A (ja) | マークアップ言語を通してクライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法 | |
CN104408204A (zh) | 网页页面链接地址的获取方法和装置 | |
CN104765746B (zh) | 用于移动通讯终端浏览器的数据处理方法和装置 | |
CN109828921A (zh) | Html5网页自动化功能测试方法、系统和电子设备 | |
CN111177519A (zh) | 网页内容获取方法、装置、存储介质及设备 | |
US9122484B2 (en) | Method and apparatus for mashing up web applications | |
CN109428877A (zh) | 一种用于通过用户设备访问业务系统的方法和装置 | |
CN103618773A (zh) | 热力图的显示方法、装置及系统 | |
CN114612279A (zh) | 一种水印添加方法和装置 | |
CN111431767A (zh) | 多浏览器资源同步方法、装置、计算机设备和存储介质 | |
CN103853717A (zh) | 网络爬虫 | |
CN110309465B (zh) | 一种无界面仿真浏览器组件设计方法及装置 | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
JP6505849B2 (ja) | 要素識別子の生成 | |
CN113742551A (zh) | 一种基于scrapy和puppeteer的动态数据抓取方法 | |
CN111797340B (zh) | 一种自定义提取流程的服务封装系统 | |
WO2015183235A1 (en) | Response based on browser engine | |
Noskov | Smart City Webgis Applications: Proof of Work Concept For High-Level Quality-Of-Service Assurance |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |