浏览器web页面自动存储方法技术

技术编号:17007638 阅读:73 留言:0更新日期:2018-01-11 03:56
本发明专利技术涉及浏览器技术领域,公开了一种浏览器web页面自动存储方法,使浏览器web页面自动按照原始递归路径存储,当页面出现错误时,能快速定位到问题页面。本发明专利技术的方案包括:检测文件系统中标志文件是否存在;检测用户是否按下了确定键,如果按下了确定按键;创建总文件夹,通过解析当前所访问到url的方式递归创建文件夹,并根据解析到的文件名来命名资源文件;判断当前的url是否在set容器中,如果当前的url不在set容器中,则将url插入set容器,并读取当前的数据至创建好的资源文件中,如果当前的url存放在set容器中,则将读取到的数据追加至创建好的资源文件中。本发明专利技术适用于浏览器web页面存储。

【技术实现步骤摘要】
浏览器web页面自动存储方法
本专利技术涉及浏览器
,特别涉及各类操作系统下终端设备浏览器web页面自动存储方法。
技术介绍
在对浏览器终端设备上进行开发时,当一个页面出现错误,我们并不能像在PC上一样能够快速的查看到页面的html代码,从而就不能对问题进行分析。如果采用工具对访问过的页面进行抓包,一方面抓包需要通过专用的抓包路由器去抓取页面,另一方面所有访问过的页面都会被抓取并存放在一个文件夹中,未按照web页面原始递归路径保存,无法明确页面构成,这样也不能快速的对问题页面进行定位。当前,HTML5技术的快速发展衍生出大量基于web的应用运行在各类设备上,Web技术标准从产生到现在,一直存在在各类浏览器上运行的语法兼容性问题,遇到类似问题时,迫切需要一种能够为开发者或后期维护人员带来便捷、提高效率方法。
技术实现思路
本专利技术要解决的技术问题是:提供一种浏览器web页面自动存储方法,使浏览器web页面自动按照原始递归路径存储,当页面出现错误时,能够快速定位到问题页面。为解决上述问题,本专利技术采用的技术方案是:浏览器web页面自动存储方法,包括步骤:A.检测文件系统中标志文件是否存在,如果存在,则进入步骤B,如果不存在,则不做任何处理;B.检测用户是否按下了确定键,如果按下了确定按键,则进入步骤C,如果未按下确定按键,则不做任何处理;C.创建总文件夹,并在总文件夹下,通过解析当前所访问到url的方式递归创建文件夹,并根据解析到的文件名来命名资源文件;D.判断当前的url是否在set容器中,如果当前的url不在set容器中,则将url插入set容器,并读取当前的数据至创建好的资源文件中,如果当前的url存放在set容器中,则将读取到的数据追加至创建好的资源文件中。进一步的,步骤B通过浏览器按键处理模块判断enter键的执行情况,以判断是否按下了确定键。进一步的,步骤C中,若url中有“?”,则在创建文件夹和命名资源文件之前,将url中“?”进行替换。进一步的,步骤C对要创建的文件判断其文件名加上路径名是否大于255,如果大于,则对它进行截断处理。本专利技术的有益效果是:本专利技术在浏览器终端设备上,不通过抓包工具对浏览器页面进行抓取,而是将浏览器获取到的数据流恢复为资源文件,并对资源文件按照页面的不同进行存放,当页面出现错误时,能够快速定位到问题页面,这样可以方便浏览器开发者更快的对页面进行设计进程。附图说明图1为实施例的流程图。具体实施方式首先介绍目前浏览器终端设备上的抓包流程。如果有页面发生了错误,我们需要将浏览器页面抓取到本地,然后分析页面代码,找出其中的问题。但是我们的机顶盒浏览器本身并不能像PC浏览器那样自带抓包功能,因此如果需要对页面代码进行抓取,首先需要通过抓包路由器将访问到的所有页面抓取到一个pcap文件中,然后对pcap文件进行分析或者从pcap文件中将所有资源文件导出。导出后的资源文件通常放在同一个目录下,这样很难定位到我们想要分析的页面代码。针对上面的问题,本专利技术采取下面的技术方案来解决:1、浏览器渲染网页的基础是首先通过网络将资源文件下载下来,然后对下载下来的网页进行DOM解析后再进行渲染。通常下载下来的文件用char数组来存放,并有一个int型变量用来存放数组的长度。这里char数组中每次存放的数据通常并不是整个文件,它会受网络的影响。网络良好的情况下每次读到的字符串就会较长,而网络不好的情况下读取的字符串就比较短。资源文件的接收可能是交叉完成的,也就是一个资源文件被接收一段数据以后,下次接收的是另一个资源文件的数据,因此我们需要区分不同资源文件的数据。2、为了区分不同资源文件,我们首先对所有的资源文件建立一个索引,索引值即为访问到的url。考虑到每次接收的数据可能来自于不同的资源文件,我们需要对资源文件进行判断,因此这里可以使用set容器存储资源文件对应的url。如果该url不存在于set容器,则将其添加到set容器中,并将对应的数据写入到创建的文件中去。如果该url已存在于set容器,则不对其进行添加,但是需要将对应的数据追加到创建的文件中。3、上面提到需要将数据写入到创建的文件中,这些文件需要我们自己去创建,文件以及其存放的文件夹命名规则由url来定,比如对于http://www.baidu.com/hello/world.html,需要将其存放到hello文件夹下的world.html文件中去。另外如果url长度过长,则会造成文件存放到对应文件夹下时出错,因为文件系统规定路径长度不能超过256个字符,因此如果文件的路径长度超过256时需要对其进行截取。因为在url中可能会有”?”等特殊字符,这里我们模仿抓包工具将所有的”?”都替换为”%3f”。另外为了方便我们去查阅创建的文件,需要将所有的文件都存放到一个公有的文件夹中去。4、考虑到我们每按下一次确定键都会进入到一个新的页面中去,为了防止不同页面的资源文件混乱存放。我们在每次按下确定键时都会创建一个不同的文件夹,然后将步骤3中创建的文件夹或者文件放到新创建的文件夹中去。通过这种方式就能让我们快速的定位到想要查看的资源文件。有时用户可能不想进行页面的抓取,这时我们可以放一个标志文件到文件系统中。如果标志文件存在就表明用户需要对页面进行抓取,这时就会将数据流存放到文件中去。如果标志文件不存在就表明用户不需要对页面进行抓取,这时就不会执行我们所添加的抓包代码。实施例实施例提供一种浏览器web页面自动存储方法,如图1所示,具体步骤如下:A.检测文件系统中标志文件是否存在,如果存在,就开始执行我们的抓包代码流程,进入步骤B,如果不存在,则不做任何处理。B.检测用户是否按下了确定键,这里可以通过浏览器按键处理模块判断enter键的执行情况,来判断是否按下了确定键,如果按下了enter按键,表明按下了确定按键,则进入步骤C,如果未按下确定按键,则不做任何处理。C.创建总文件夹,所有加载到的资源文件都放到该文件夹中。为了模拟其在服务器上所存放的位置,这里主要是通过解析当前所访问到url的方式递归创建文件夹,并根据解析到的文件名来命名我们的资源文件。考虑到在url中会有很多“?”用于传递参数,但是在文件夹或者文件的命名不能包括“?”等符号,因此我们需要将其替换掉。这里采用和wireshark相同的方式,遇到“?”就将其替换为“%3f”。无论是Linux还是windows系统它们所采用的文件系统都规定文件名的最大长度不能大于255,但是url如果过长则会造成我们根据url创建的文件因为文件系统对文件名长度的限制而不能成功创建。考虑到这种情况,我们首先会对要创建的文件判断其文件名加上路径名是否大于255,如果大于就对它进行截断处理,这样能够保证文件不因为文件名的原因而不能被正确创建。D.接下来就需要对页面数据进行存储,在浏览器内核中有很多地方都可以对资源数据进行访问,但是有些地方可能只处理文本资源,而另外有一些只处理图像资源。考虑到需要存放所有的数据,包括html、css、js和图片,因此我们需要找到一个能够接收所有数据的接口。这里我们选择浏览器数据统一接收模块,其接口的定义为:voidResourceLoader::didReceiveDa本文档来自技高网...
浏览器web页面自动存储方法

【技术保护点】
浏览器web页面自动存储方法,其特征在于,包括步骤:A.检测文件系统中标志文件是否存在,如果存在,则进入步骤B,如果不存在,则不做任何处理;B.检测用户是否按下了确定键,如果按下了确定按键,则进入步骤C,如果未按下确定按键,则不做任何处理;C.创建总文件夹,在总文件夹下,通过解析当前所访问到url的方式递归创建文件夹,根据解析到的文件名来命名资源文件;D.判断当前的url是否在set容器中,如果当前的url不在set容器中,则将url插入set容器,并读取当前的数据至创建好的资源文件中,如果当前的url存放在set容器中,则将读取到的数据追加至创建好的资源文件中。

【技术特征摘要】
1.浏览器web页面自动存储方法,其特征在于,包括步骤:A.检测文件系统中标志文件是否存在,如果存在,则进入步骤B,如果不存在,则不做任何处理;B.检测用户是否按下了确定键,如果按下了确定按键,则进入步骤C,如果未按下确定按键,则不做任何处理;C.创建总文件夹,在总文件夹下,通过解析当前所访问到url的方式递归创建文件夹,根据解析到的文件名来命名资源文件;D.判断当前的url是否在set容器中,如果当前的url不在set容器中,则将url插入set容器,并读取当前的数据至创建好的资源文件中,如果当前的url...

【专利技术属性】
技术研发人员:陈伟任帅黄文豪季天友高美军
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1