CN111782998B - 一种基于chrome的网页镜像、回放及本地映射地图生成方法 - Google Patents

一种基于chrome的网页镜像、回放及本地映射地图生成方法 Download PDF

Info

Publication number
CN111782998B
CN111782998B CN202010562547.6A CN202010562547A CN111782998B CN 111782998 B CN111782998 B CN 111782998B CN 202010562547 A CN202010562547 A CN 202010562547A CN 111782998 B CN111782998 B CN 111782998B
Authority
CN
China
Prior art keywords
url
value
field
dictionary
parameter
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
Application number
CN202010562547.6A
Other languages
English (en)
Other versions
CN111782998A (zh
Inventor
王文清
曾潮缤
刘诗慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN202010562547.6A priority Critical patent/CN111782998B/zh
Publication of CN111782998A publication Critical patent/CN111782998A/zh
Application granted granted Critical
Publication of CN111782998B publication Critical patent/CN111782998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

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)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种基于chrome的网页镜像、回放及本地映射地图生成方法,提出一种新的页面保存方式,及相应的页面回放方法、跨页离线浏览的解决方案。首先本发明的镜像方法有效的记录了访问网页时重要的原始数据,同时完整地记录了访问网页时页面的原始内容;本发明的镜像回放方法可以展现出网页的网络请求详细过程和相关数据,更加真实的还原镜像制作当时获取网页的情景;本发明的镜像回放方案支持离线跨页浏览,为整站离线浏览提供了一个实现方案,提供了更好的沉浸式浏览体验。

Description

一种基于chrome的网页镜像、回放及本地映射地图生成方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于chrome的网页镜像、回放及本地映射地图生成方法。
背景技术
随着web2.0的发展,网页的数量呈现出几何指数的增长,人人都可参与互联网内容的创造,人们有更多的网页保存需求。现有两种标准的网页保存方式,一种是页面和资源分别存储成单个文件,同时浏览器将页面里的链接重新修改定向到其子目录资源的方式;另外一种是存储成单个页面的网页归档MHTML。这两种方法基本满足单一网页存储的需求。然而单一的简单镜像并不能满足人们越来越高的体验需求,也难以体现相关的数据来源及事件相关过程。人们需要更好的方式来解决这些问题。
现有页面保存方式仅记录了某一时刻的页面html状态,未记录资源出处及访问时间;然而不同时间访问相同页面呈现的内容可能会不一样,同样相同的URL也会根据访问位置的不同被定向到不同的服务器,原有的保存方式无法体现这些关键的差异。现有的页面保存方式回放内容时仅支持单页面模式,无法支持跨页离线浏览等;现有保存方式保存内容时会对内容进行修改,未能真实还原页面原本内容。如公开号为CN110532455A的发明专利《一种基于Chrome浏览器的网页图片获取方法和系统》中只说明了可以通过Chrome获取网页图片,这种方式仅仅获取了图片类资源,相对来说有一定的局限性,无法完整地获得整个网页信息。
发明内容
为了解决上述问题,本发明提出了一种基于chrome的网页镜像、回放及本地映射地图生成方法。
具体方案如下:
一种基于chrome的网页镜像方法,包括以下步骤:
S101:通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面;
S102:新建字典allResource用于存储资源数据,新建列表redirectUrlList用于存储页面跳转信息;
S103:绑定事件Network.responseReceived、Network.loadingFinished、Network.requestWillBeSent到事件处理流程E1、E2、E3;
事件处理流程E1:收到E1事件后,将其中的requestId作为键、response作为值,存入allResource字典;
事件处理流程E2:收到E2事件后,得知requestId对应的消息体已完成接收,结合E1所收到的消息描述,组成一个完整的http响应;
事件处理流程E3:收到E3事件后,检测参数redirectResponse中是否有值,如果有值说明存在URL跳转行为,取该值的字段url得到原始请求的URL,取参数request的字段url得到跳转后的URL;新建一个字典,将原始请求URL写入orgUrl字段,跳转后的URL写入realUrl字段,将该字典压入列表redirectUrlList;
S104:调用Network.enable()准备接收事件,清除浏览器缓存或调用Network.setCacheDisabled,将参数cacheDisabled设置为True后,调用Page.navigate并将参数url设置为需要镜像的网页URL;
S105:当浏览器请求网络数据且网页加载完成后,进入步骤S6;
S106:新建一个根字典root用于存储网页镜像,并进行以下三种操作:
操作一:调用Runtime.evaluate,将参数expression设置为“window.location.href“,其余参数使用默认值,从返回值中获得当前页面URL,写入root字段targetURL;
操作二:将字典allResource写入root字段extraInfo;将redirectUrlList写入root字段redirectURL;
操作三:调用DOM.getDocument,将参数depth设置1,参数pierce设置true,得到返回值node;
S107:调用DOM.getOuterHTML,将参数nodeId设置为返回值node中的nodeId字段,参数backendNodeId设置为返回值node中的backendNodeId字段,返回值即为渲染后的网页内容;
S108:将步骤S107返回的网页内容写入root字段targetBody;
S109:将root序列转化后保存到本地,形成镜像文件。
进一步的,事件处理流程E2中组成一个完整的http响应的具体方法为:通过调用Network.getResponseBody并传入requestId来获得消息体内容,通过其返回的base64Encoded参数判断消息体是否已经进行base64编码,如未进行base64编码,将消息体进行base64编码,并在allResource中找到对应requestId的值,新增一个data字段,将base64编码后的消息体存入该requestId的值中。
进一步的,网页加载完成的判断为监控网络请求和人工观察两种方法中的一种。
一种网站本地映射地图生成方法,包括以下步骤:
S201:创建字典root用于存储网站地图;
S202:遍历采用本申请实施例一中方法生成的镜像文件;
S203:提取镜像文件中targetURL字段的值;
S204:将提取的targetURL字段的值作为键,将镜像文件的地址作为值,写入root字典中;
S205:判断是否遍历完所有镜像文件,如果是,进入S206;否则,返回S203;
S206:将root字典序列化保存到本地,形成本地网站地图文件。
一种网站回放方法,包括以下步骤:
S301:输入要回放的采用本申请实施例一中方法生成的镜像文件Image,网站地图Map,通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面;
S302:监听事件Page.close和Network.requestIntercepted,对应事件处理流程E4和E5,进入步骤S303;
S303:调用Page.enable()和Network.enable()开始事件监听,进入步骤S304;
S304:调用Network.setRequestInterception,将参数patterns设置为[{'urlPattern':'*'}],进入步骤S305;
S305:调用Page.navigate,将参数url设置为输入镜像文件Image的targetURL字段,触发浏览器进行网络请求,初始流程结束,等待事件处理流程E4和E5的处理;
(1)事件处理流程E4:当接受到用户关闭页面事件通知后,结束对该tab页面的控制,结束网页回放;
(2)事件处理流程E5的处理包括以下步骤:
S306:检测该网络请求是否为当前Image的首次网络请求,如果是,则进入步骤S307,否则,进入步骤S310;
S307:遍历Image的extraInfo字典的值value,取其url字段跟网络请求的URL进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S308;否则,进入步骤S309;
S308:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入二进制流stream,进入步骤S314;
S309:生成一个包括状态码、类型描述信息和编码的头信息,写入二进制流stream,进入S314;
S310:判断网络请求的URL是否匹配网站地图Map里面其他镜像的键,如果是,则重置Image为匹配URL的Image文件,返回步骤S307;否则,进入步骤S311;
S311:遍历Image的extraInfo字典的值value,取其url字段跟网络请求的URL进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S312;否则,进入步骤S316;
S312:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入二进制流stream,进入步骤S313;
S313:获取匹配节点value的data字段,将其从base64编码还原,追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S15;
S314:将当前镜像Image的targetBody字段内容追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S315;
S315:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数rawResponse设置为strstream,参数url设置为当前网络请求的URL,结束事件处理流程E5的处理;
S316:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数errorReason设置为“BlockedByClient“,结束事件处理流程E5的处理。
本发明采用如上技术方案,提出一种新的页面保存方式,及相应的页面回放方法、跨页离线浏览的解决方案。首先本发明的镜像方法有效的记录了访问网页时重要的原始数据,同时完整地记录了访问网页时页面的原始内容;本发明的镜像回放方法可以展现出网页的网络请求详细过程和相关数据,更加真实的还原镜像制作当时获取网页的情景;本发明的镜像回放方案支持离线跨页浏览,为整站离线浏览提供了一个实现方案,提供了更好的沉浸式浏览体验。
附图说明
图1所示为本发明实施例一的流程图。
图2所示为本发明实施例一中镜像文件格式示意图。
图3所示为本发明实施例二的流程图。
图4所示为本发明实施例三中网站回放功能流程图。
图5所示为本发明实施例三中时间处理流程E5的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
本发明基于一个高级API来控制DevTools协议上的Chrome浏览器或Chromium浏览器来进行网页的镜像及回放过程。其中,chrome devtools协议允许工具检测、检查、调试和配置chrome、chrome和其他基于blink的浏览器。chrome devtools使用这个协议,由Google团队负责维护它的API。DevTools协议API检测分为多个域(DOM、调试器、网络等)。每个域定义了它支持的许多命令和它生成的事件。命令和事件都是固定结构的序列化JSON对象。本发明提到的函数和事件均为该协议内容。
实施例一:
本发明实施例一提供了一种基于chrome的网页镜像方法,如图1所示,所述方法包括以下步骤:
S101:通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面。
S102:新建字典allResource用于存储资源数据,新建列表redirectUrlList用于存储页面跳转信息。
S103:绑定事件Network.responseReceived、Network.loadingFinished、Network.requestWillBeSent到事件处理流程E1、E2、E3。
事件处理流程E1:收到E1事件后,将其中的requestId作为键、response作为值,存入allResource字典,response包含了服务器返回的所有信息,但此时消息体还未接收完成。
事件处理流程E2:收到E2事件后,得知requestId对应的消息体已完成接收,结合E1所收到的消息描述,可组成一个完整的http响应。这里通过调用Network.getResponseBody并传入requestId来获得消息体内容,通过其返回的base64Encoded参数判断消息体是否已经进行base64编码,如未进行base64编码,将消息体进行base64编码,并在allResource中找到对应requestId的值,新增一个data字段,将base64编码后的消息体存入该requestId的值中。
事件处理流程E3:收到E3事件后,检测参数redirectResponse是否有值,如果有值说明存在URL跳转行为,取该值的字段url得到原始请求的URL,取参数request的字段url得到跳转后的URL。新建一个字典,将原始请求URL写入orgUrl字段,跳转后的URL写入realUrl字段,将该字典压入列表redirectUrlList。
S104:调用Network.enable()准备接收事件,清除浏览器缓存或调用Network.setCacheDisabled,将参数cacheDisabled设置为True后,调用Page.navigate并将参数url设置成需要镜像的网页URL。至此,浏览器开始请求网络数据,绑定的事件E1、E2、E3也会在触发事件时进行处理。
S105:当浏览器请求网络数据且网页加载完成后,进入步骤S6。
需要通过一定的方法来判断网页是否已加载完成,进而决定进行镜像的时机,该实施例中设置可以通过监控网络请求和人工观看网页两种方法中的一种来做出判断。
S106:新建一个根字典root用于存储网页镜像,并进行以下三种操作:
操作一:调用Runtime.evaluate,将参数expression设置为“window.location.href“,其余参数使用默认值,从返回值中获得当前页面URL,写入root字段targetURL。
操作二:将字典allResource写入root字段extraInfo;将redirectUrlList写入root字段redirectURL。
操作三:为了取得当前文档节点标识,调用DOM.getDocument,将参数depth设置1,参数pierce设置true,得到返回值node。
需要说明的是上述三种操作的顺序不限定,可以为乱序,也可以并行操作。
S107:调用DOM.getOuterHTML,将参数nodeId设置为返回值node中的nodeId字段,参数backendNodeId设置为返回值node中的backendNodeId字段,返回值即为渲染后的网页内容。
步骤S107用来获取网页内容。
S108:将步骤S107返回的网页内容写入root字段targetBody。
S109:将root序列转化后保存到本地,形成镜像文件,其格式如图2所示,完成网页镜像过程。
实施例二:
对一个网站不同层次的URL进行镜像,会形成多个镜像文件,依据这些镜像文件,生成网站本地映射地图,因此,本发明实施例二提供了一种网站本地映射地图生成方法,如图3所示,所述方法包括以下步骤:
S201:创建字典root用于存储网站地图。
S202:遍历采用实施例一所述方法生成的镜像文件。
需要说明的是,所述镜像文件页面应存在跳转关系创建的网站地图才有相应意义。
S203:提取镜像文件中targetURL字段的值,即为网页镜像的URL。
S204:将提取的targetURL字段的值作为键,将镜像文件的地址作为值,写入root字典中;
S205:判断是否遍历完所有镜像文件,如果是,进入S206;否则,返回S203;
S206:将root字典序列化保存到本地,形成本地网站地图文件。
实施例三:
本发明实施例三提供了一种网站回放方法,如图4和图5所示,所述方法包括以下步骤:
S301:输入要回放的采用实施例一方法生成的镜像文件Image,网站地图Map,通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面,进入步骤S302。
S302:监听事件Page.close和Network.requestIntercepted,对应事件处理流程E4和E5,其中Network.requestIntercepted也可用Fetch.requestPaused替换,效果一样,进入步骤S303。
S303:调用Page.enable()和Network.enable()开始事件监听,进入步骤S304。
S304:调用Network.setRequestInterception,将参数patterns设置为[{'urlPattern':'*'}],即对所有链接进行匹配拦截,进入步骤S305。
S305:调用Page.navigate,将参数url设置为输入镜像文件Image的targetURL字段,触发浏览器进行网络请求,初始流程结束,等待事件处理流程E4和E5的处理。
(1)事件处理流程E4:当接受到用户关闭页面事件通知后,结束对该tab页面的控制,结束网页回放。
(2)事件处理流程E5:由于步骤S304设置了网络拦截以及步骤S303开启了事件监听,改tab页面内的网络请求都会触发此事件,该事件处理流程E5的两个关键参数为请求标识及请求的URL。
事件处理流程E5的处理包括以下步骤:
S306:检测该网络请求是否为当前Image的首次网络请求,如果是,则进入步骤S307,否则,进入步骤S310。
S307:遍历Image的extraInfo字典的值value,取其url字段跟请求的URL(即事件参数request的url字段)进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S308;否则,进入步骤S309。
S308:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入一个二进制流stream,进入步骤S314。
S309:如果未找到相关节点,生成一个包括状态码、类型描述信息和编码的头信息,例如“HTTP/1.1 200OK\r\nContent-Type:text/html;charset=UTF-8\r\n\r\n”,写入二进制流stream,进入步骤S314。
S310:判断网络请求的URL是否匹配网站地图Map里面其他镜像的键,如果是,说明该链接可实现跳转,则重置Image为匹配URL的Image文件,返回步骤S307,否则,进入步骤S311。
S311:遍历Image的extraInfo字典的值value,取其url字段跟网络请求的URL进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S312;否则,进入步骤S316。
S312:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入一个二进制流stream,进入步骤S313。
S313:获取匹配节点value的data字段,将其从base64编码还原,追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S315。
S314:将当前镜像Image的targetBody字段内容追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S315。
S315:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数rawResponse设置为strstream,参数url设置为当前请求URL,结束事件处理流程E5的处理。此函数会将数据返回给浏览器,模拟在线浏览场景。
需要说明的是,如果步骤S302中使用Fetch.requestPaused,则此处Network.continueInterceptedRequest替换成Fetch.continueRequest,参数做相应调整。
S316:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数errorReason设置为“BlockedByClient“,结束事件处理流程E5的处理。
需要说明的是,如果步骤S2使用Fetch.requestPaused,则此处Network.continueInterceptedRequest替换成Fetch.continueRequest,参数做相应调整。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (5)

1.一种基于chrome的网页镜像方法,其特征在于,包括以下步骤:
S101:通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面;
S102:新建字典allResource用于存储资源数据,新建列表redirectUrlList用于存储页面跳转信息;
S103:绑定事件Network.responseReceived、Network.loadingFinished、Network.requestWillBeSent到事件处理流程E1、E2、E3;
事件处理流程E1:收到E1事件后,将其中的requestId作为键、response作为值,存入allResource字典;
事件处理流程E2:收到E2事件后,得知requestId对应的消息体已完成接收,结合E1所收到的消息描述,组成一个完整的http响应;
事件处理流程E3:收到E3事件后,检测参数redirectResponse中是否有值,如果有值说明存在URL跳转行为,取该值的字段url得到原始请求的URL,取参数request的字段url得到跳转后的URL;新建一个字典,将原始请求URL写入orgUrl字段,跳转后的URL写入realUrl字段,将该字典压入列表redirectUrlList;
S104:调用Network.enable()准备接收事件,清除浏览器缓存或调用Network.setCacheDisabled,将参数cacheDisabled设置为True后,调用Page.navigate并将参数url设置为需要镜像的网页URL;
S105:当浏览器请求网络数据且网页加载完成后,进入步骤S6;
S106:新建一个根字典root用于存储网页镜像,并进行以下三种操作:
操作一:调用Runtime.evaluate,将参数expression设置为window.location.href,其余参数使用默认值,从返回值中获得当前页面URL,写入root字段targetURL;
操作二:将字典allResource写入root字段extraInfo;将redirectUrlList写入root字段redirectURL;
操作三:调用DOM.getDocument,将参数depth设置1,参数pierce设置true,得到返回值node;
S107:调用DOM.getOuterHTML,将参数nodeId设置为返回值node中的nodeId字段,参数backendNodeId设置为返回值node中的backendNodeId字段,返回值即为渲染后的网页内容;
S108:将步骤S107返回的网页内容写入root字段targetBody;
S109:将root序列转化后保存到本地,形成镜像文件。
2.根据权利要求1所述的基于chrome的网页镜像方法,其特征在于:事件处理流程E2中组成一个完整的http响应的具体方法为:通过调用Network.getResponseBody并传入requestId来获得消息体内容,通过其返回的base64Encoded参数判断消息体是否已经进行base64编码,如未进行base64编码,将消息体进行base64编码,并在allResource中找到对应requestId的值,新增一个data字段,将base64编码后的消息体存入该requestId的值中。
3.根据权利要求1所述的基于chrome的网页镜像方法,其特征在于:网页加载完成的判断为监控网络请求和人工观察两种方法中的一种。
4.一种网站本地映射地图生成方法,其特征在于,包括以下步骤:
S201:创建字典root用于存储网站地图;
S202:遍历采用权利要求1~3中任一方法生成的镜像文件;
S203:提取镜像文件中targetURL字段的值;
S204:将提取的targetURL字段的值作为键,将镜像文件的地址作为值,写入root字典中;
S205:判断是否遍历完所有镜像文件,如果是,进入S206;否则,返回S203;
S206:将root字典序列化保存到本地,形成本地网站地图文件。
5.一种网站回放方法,其特征在于,包括以下步骤:
S301:输入要回放的采用权利要求1~3中任一方法生成的镜像文件Image,网站地图Map,通过chrome devtools API连接chrome或chromium浏览器并打开一个tab页面,进入步骤S302;
S302:监听事件Page.close和Network.requestIntercepted,对应事件处理流程E4和E5,进入步骤S303;
S303:调用Page.enable()和Network.enable()开始事件监听,进入步骤S304;
S304:调用Network.setRequestInterception,将参数patterns设置为[{'urlPattern':'*'}],进入步骤S305;
S305:调用Page.navigate,将参数url设置为输入镜像文件Image的targetURL字段,触发浏览器进行网络请求,初始流程结束,等待事件处理流程E4和E5的处理;
(1)事件处理流程E4:当接受到用户关闭页面事件通知后,结束对该tab页面的控制,结束网页回放;
(2)事件处理流程E5的处理包括以下步骤:
S306:检测该网络请求是否为当前Image的首次网络请求,如果是,则进入步骤S307,否则,进入步骤S310;
S307:遍历Image的extraInfo字典的值value,取其url字段跟网络请求的URL进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S308;否则,进入步骤S309;
S308:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入二进制流stream,进入步骤S314;
S309:生成一个包括状态码、类型描述信息和编码的头信息,写入二进制流stream,进入S314;
S310:判断网络请求的URL是否匹配网站地图Map里面其他镜像的键,如果是,则重置Image为匹配URL的Image文件,返回步骤S307;否则,进入步骤S311;
S311:遍历Image的extraInfo字典的值value,取其url字段跟网络请求的URL进行比较,判断两者是否相等,如果相等则节点匹配,进入步骤S312;否则,进入步骤S316;
S312:获取匹配节点value的headers字段,将其设置为一个字典,字典的键为http请求头名称,字典的值为http请求头对应的值,根据http的格式将键和值做拼接处理,写入二进制流stream,进入步骤S313;
S313:获取匹配节点value的data字段,将其从base64编码还原,追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S15;
S314:将当前镜像Image的targetBody字段内容追加写入stream,并将stream进行base64编码,获得strsteam,进入步骤S315;
S315:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数rawResponse设置为strstream,参数url设置为当前网络请求的URL,结束事件处理流程E5的处理;
S316:调用Network.continueInterceptedRequest,将参数interceptionId设置为事件处理流程E5的请求标识interceptionId,参数errorReason设置为BlockedByClient,结束事件处理流程E5的处理。
CN202010562547.6A 2020-06-19 2020-06-19 一种基于chrome的网页镜像、回放及本地映射地图生成方法 Active CN111782998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010562547.6A CN111782998B (zh) 2020-06-19 2020-06-19 一种基于chrome的网页镜像、回放及本地映射地图生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010562547.6A CN111782998B (zh) 2020-06-19 2020-06-19 一种基于chrome的网页镜像、回放及本地映射地图生成方法

Publications (2)

Publication Number Publication Date
CN111782998A CN111782998A (zh) 2020-10-16
CN111782998B true CN111782998B (zh) 2022-07-12

Family

ID=72757430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010562547.6A Active CN111782998B (zh) 2020-06-19 2020-06-19 一种基于chrome的网页镜像、回放及本地映射地图生成方法

Country Status (1)

Country Link
CN (1) CN111782998B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405192B1 (en) * 1999-07-30 2002-06-11 International Business Machines Corporation Navigation assistant-method and apparatus for providing user configured complementary information for data browsing in a viewer context
CN105488078B (zh) * 2014-10-10 2019-07-26 阿里巴巴集团控股有限公司 一种网页数据缓存方法及设备
CN109299423A (zh) * 2018-10-30 2019-02-01 中译语通科技股份有限公司 一种获取网络数据的方法
CN110532455A (zh) * 2019-09-05 2019-12-03 北京市博汇科技股份有限公司 一种基于Chrome浏览器的网页图片获取方法和系统

Also Published As

Publication number Publication date
CN111782998A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN108304498B (zh) 网页数据采集方法、装置、计算机设备和存储介质
CN104133828B (zh) 用于html文档的拖放剪贴板
US10303581B2 (en) Graphical transaction model
CN103984686B (zh) 页面切换方法及装置
CN104426925B (zh) 网页资源获取方法及装置
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
JP4940791B2 (ja) テスト支援プログラム、テスト支援装置、およびテスト支援方法
CN103597469A (zh) 集成开发环境中的实况浏览器工具
CN107276842B (zh) 接口测试方法、装置及电子设备
JP2007149074A (ja) コンテキスト・ベースのナビゲーション
CN113296653B (zh) 一种仿真交互模型构建方法、交互方法及相关设备
CN103678487A (zh) 一种网页快照的生成方法和装置
CN113407284A (zh) 导航界面的生成方法、装置、存储介质及电子设备
JP5286946B2 (ja) 情報処理装置、その入力情報の復元方法及び復元プログラム
CN113987393A (zh) 一种网页操作记录器、系统、装置及方法
CN114254228A (zh) 一种数据动态绑定的web应用处理方法及相关装置
CN101231655A (zh) 用于处理搜索引擎结果的方法和系统
CN111782998B (zh) 一种基于chrome的网页镜像、回放及本地映射地图生成方法
Penberthy Beginning ASP. NET for Visual Studio 2015
CN110232019A (zh) 页面测试方法及相关产品
KR100261265B1 (ko) 웹 문서 저작을 위한 장치 및 그 운용 방법
JP2007233698A (ja) ウェブ表示端末および注釈処理モジュール
JP2007233695A (ja) 注釈管理装置、ウェブ表示端末、注釈管理方法およびウェブ表示方法
CN116166533A (zh) 接口测试方法、装置、终端设备以及存储介质
CN116820635A (zh) 一种文档块分享方法、装置、系统及存储介质

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