首页 / 专利库 / 软件 / 通配符 / 基于启发式算法实现浏览器加载控制的系统及其方法

基于启发式算法实现浏览器加载控制的系统及其方法

阅读:749发布:2020-05-13

专利汇可以提供基于启发式算法实现浏览器加载控制的系统及其方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于启发式 算法 实现浏览器加载控制的系统,包括浏览器执行模 块 ;代理模块;启发式 控制器 ,用于控制每个资源 请求 ,并优化下一次的 访问 请求组合;解析模块,用于对浏览器 渲染 结果进行解析,输出解析结果;结果判决器;请求决策器,用于读取存在的最优解,并重新 迭代 生成最优解;配置中心。本发明还涉及一种实现基于启发式算法的浏览器加载控制方法。采用了本发明的基于启发式算法实现浏览器加载控制的系统及其方法,可以自动优化网络请求,极大的降低 数据采集 过程中采集方与被采集方的网络带宽需求、提高采集效率、降低被采集 网站 的请求连接资源消耗。本系统对网络请求进行优化时无需先验信息,可以适应绝大多数的网络采集任务。,下面是基于启发式算法实现浏览器加载控制的系统及其方法专利的具体信息内容。

1.一种基于启发式算法实现浏览器加载控制的系统,其特征在于,所述的系统包括:
浏览器执行模,用于接收请求任务,并渲染请求结果;
代理模块,与所述的浏览器执行模块相连接,用于接管浏览器与资源网站的所有请求;
启发式控制器,与所述的代理模块相连接,用于控制每个资源请求,并优化下一次的访问请求组合;
解析模块,与所述的浏览器执行模块相连接,用于对浏览器渲染结果进行解析,输出解析结果;
结果判决器,与所述的解析模块和启发式控制器相连接,用于比较解析结果与任务预期模板;
请求决策器,与所述的启发式控制器相连接,用于读取存在的最优解,并重新迭代生成最优解;
配置中心,与所述的请求决策器相连接,用于存储每种访问任务的多个最优解以及组合成功解析次数,并自动对已知任务进行请求优化。
2.根据权利要求1所述的基于启发式算法实现浏览器加载控制的系统,其特征在于,所述的请求任务包括目标网站地址、待采集元素定位信息和预期结果的正则表达式。
3.一种利用权利要求1所述的系统实现基于启发式算法的浏览器加载控制方法,其特征在于,所述的方法包括以下步骤:
(1)系统发起请求任务,判断任务是否需要读取配置中心的配置,如果是,则继续步骤(2);否则,继续步骤(4);
(2)系统读取配置中心已经存在的最优请求组合;
(3)所述的启发式控制器根据梯度下降的计算步骤优化访问请求组合;
(4)所述的代理模块根据请求组合访问资源网站;
(5)所述的解析模块对浏览器渲染结果进行解析,输出解析结果;
(6)所述的结果判决器比较解析结果与任务预期模板,判断是否符合用户预期,如果是,则输出最优请求组合,并更新配置中心中存在的最优解;否则,继续步骤(3)。
4.根据权利要求3所述的实现基于启发式算法的浏览器加载控制方法,其特征在于,所述的步骤(3)具体包括以下步骤:
(3.1)将第一次加载的全部请求进行变量的通配符替换,并将结果进行哈希计算;
(3.2)随机减少m个请求,生成新请求组合的集合;
(3.3)判断新请求集合是否可以获取数据目标,如果是,则继续步骤(3.4);否则,继续步骤(3.5);
(3.4)修改m的值,并继续步骤(3.2);
(3.5)输出当前获取数据目标的请求的集合。
5.根据权利要求3所述的实现基于启发式算法的浏览器加载控制方法,其特征在于,所述的步骤(4)具体包括以下步骤:
(4.1)所述的代理模块根据启发式控制器的信号拦截与放行指定的请求;
(4.2)所述的代理模块根据请求组合访问资源网站。
6.根据权利要求3所述的实现基于启发式算法的浏览器加载控制方法,其特征在于,所述的步骤(5)具体包括以下步骤:
(5.1)所述的解析模块定位本次请求页面的元素;
(5.2)所述的解析模块对浏览器渲染结果进行解析,输出解析结果。

说明书全文

基于启发式算法实现浏览器加载控制的系统及其方法

技术领域

[0001] 本发明涉及互联网领域,尤其涉及数据采集领域,具体是指一种基于启发式算法实现浏览器加载控制的系统及其方法。

背景技术

[0002] 传统的借助浏览器的数据采集方案中,器本身对采集内容无感知,在执行请求任务时会加载整个页面的资源文件。其中包含了各类耗时资源,例如:背景图片、音频、视频、Flask等多媒体文件,大量的资源文件加载不仅严重拖慢了数据采集速度而且还消耗了大量的网络带宽和系统内存。对于大多数的数据采集任务,不加载这类文件并不会影响数据的正常采集。

发明内容

[0003] 本发明的目的是克服了上述现有技术的缺点,提供了一种满足结构简单、速度快、效率高的基于启发式算法实现浏览器加载控制的系统及其方法。
[0004] 为了实现上述目的,本发明的基于启发式算法实现浏览器加载控制的系统及其方法如下:
[0005] 该基于启发式算法实现浏览器加载控制的系统,其主要特点是,所述的系统包括:
[0006] 浏览器执行模,用于接收请求任务,并渲染请求结果;
[0007] 代理模块,与所述的浏览器执行模块相连接,用于接管浏览器与资源网站的所有请求;
[0008] 启发式控制器,与所述的代理模块相连接,用于控制每个资源请求,并优化下一次的访问请求组合;
[0009] 解析模块,与所述的浏览器执行模块相连接,用于对浏览器渲染结果进行解析,输出解析结果;
[0010] 结果判决器,与所述的解析模块和启发式控制器相连接,用于比较解析结果与任务预期模板;
[0011] 请求决策器,与所述的启发式控制器相连接,用于读取存在的最优解,并重新迭代生成最优解;
[0012] 配置中心,与所述的请求决策器相连接,用于存储每种访问任务的多个最优解以及组合成功解析次数,并自动对已知任务进行请求优化。
[0013] 较佳地,所述的请求任务包括目标网站地址、待采集元素定位信息和预期结果的正则表达式。
[0014] 该利用上述系统实现基于启发式算法的浏览器加载控制方法,其主要特点是,所述的方法包括以下步骤:
[0015] (1)系统发起请求任务,判断任务是否需要读取配置中心的配置,如果是,则继续步骤(2);否则,继续步骤(4);
[0016] (2)系统读取配置中心已经存在的最优请求组合;
[0017] (3)所述的启发式控制器根据梯度下降的计算步骤优化访问请求组合;
[0018] (4)所述的代理模块根据请求组合访问资源网站;
[0019] (5)所述的解析模块对浏览器渲染结果进行解析,输出解析结果;
[0020] (6)所述的结果判决器比较解析结果与任务预期模板,判断是否符合用户预期,如果是,则输出最优请求组合,并更新配置中心中存在的最优解;否则,继续步骤(3)。
[0021] 较佳地,所述的步骤(3)具体包括以下步骤:
[0022] (3.1)将第一次加载的全部请求进行变量的通配符替换,并将结果进行哈希计算;
[0023] (3.2)随机减少m个请求,生成新请求组合的集合;
[0024] (3.3)判断新请求集合是否可以获取数据目标,如果是,则继续步骤(3.4);否则,继续步骤(3.5);
[0025] (3.4)修改m的值,并继续步骤(3.2);
[0026] (3.5)输出当前获取数据目标的请求的集合。
[0027] 较佳地,所述的步骤(4)具体包括以下步骤:
[0028] (4.1)所述的代理模块根据启发式控制器的信号拦截与放行指定的请求;
[0029] (4.2)所述的代理模块根据请求组合访问资源网站。
[0030] 较佳地,所述的步骤(5)具体包括以下步骤:
[0031] (5.1)所述的解析模块定位本次请求页面的元素;
[0032] (5.2)所述的解析模块对浏览器渲染结果进行解析,输出解析结果。
[0033] 采用了本发明的基于启发式算法实现浏览器加载控制的系统及其方法,可以自动优化网络请求,极大的降低数据采集过程中采集方与被采集方的网络带宽需求、提高采集效率、降低被采集网站的请求连接资源消耗。系统自身可以适应网站的改版,重新迭代出最优解。该过程无需人员参与,不会影响正常的系统流程。现行的匹配规则需要预先知道请求流程才能配置相应的规则,对未知网络请求无法做到完全兼容。由于结合了启发式算法,本系统对网络请求进行优化时无需先验信息,可以适应绝大多数的网络采集任务。附图说明
[0034] 图1为本发明的基于启发式算法实现浏览器加载控制的系统的结构图。
[0035] 图2为本发明的实现基于启发式算法的浏览器加载控制方法的流程图
[0036] 图3为本发明的启发式控制器工作的流程图。
[0037] 图4为本发明的结果判决器工作的流程图。

具体实施方式

[0038] 为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0039] 本发明的该基于启发式算法实现浏览器加载控制的系统,其中包括:
[0040] 浏览器执行模块,用于接收请求任务,并渲染请求结果;
[0041] 代理模块,与所述的浏览器执行模块相连接,用于接管浏览器与资源网站的所有请求;
[0042] 启发式控制器,与所述的代理模块相连接,用于控制每个资源请求,并优化下一次的访问请求组合;
[0043] 解析模块,与所述的浏览器执行模块相连接,用于对浏览器渲染结果进行解析,输出解析结果;
[0044] 结果判决器,与所述的解析模块和启发式控制器相连接,用于比较解析结果与任务预期模板;
[0045] 请求决策器,与所述的启发式控制器相连接,用于读取存在的最优解,并重新迭代生成最优解;
[0046] 配置中心,与所述的请求决策器相连接,用于存储每种访问任务的多个最优解以及组合成功解析次数,并自动对已知任务进行请求优化。
[0047] 作为本发明的优选实施方式,所述的请求任务包括目标网站地址、待采集元素定位信息和预期结果的正则表达式。
[0048] 本发明的该利用上述系统实现基于启发式算法的浏览器加载控制方法,其中包括以下步骤:
[0049] (1)系统发起请求任务,判断任务是否需要读取配置中心的配置,如果是,则继续步骤(2);否则,继续步骤(4);
[0050] (2)系统读取配置中心已经存在的最优请求组合;
[0051] (3)所述的启发式控制器根据梯度下降的计算步骤优化访问请求组合;
[0052] (3.1)将第一次加载的全部请求进行变量的通配符替换,并将结果进行哈希计算;
[0053] (3.2)随机减少m个请求,生成新请求组合的集合;
[0054] (3.3)判断新请求集合是否可以获取数据目标,如果是,则继续步骤(3.4);否则,继续步骤(3.5);
[0055] (3.4)修改m的值,并继续步骤(3.2);
[0056] (3.5)输出当前获取数据目标的请求的集合;
[0057] (4)所述的代理模块根据请求组合访问资源网站;
[0058] (4.1)所述的代理模块根据启发式控制器的信号拦截与放行指定的请求;
[0059] (4.2)所述的代理模块根据请求组合访问资源网站;
[0060] (5)所述的解析模块对浏览器渲染结果进行解析,输出解析结果;
[0061] (5.1)所述的解析模块定位本次请求页面的元素;
[0062] (5.2)所述的解析模块对浏览器渲染结果进行解析,输出解析结果;
[0063] (6)所述的结果判决器比较解析结果与任务预期模板,判断是否符合用户预期,如果是,则输出最优请求组合,并更新配置中心中存在的最优解;否则,继续步骤(3)。
[0064] 本发明的具体实施方式中,复杂网站的数据采集、自动化测试技术,通常借助浏览器加载页面资源才能实现。而浏览器通常会加载网站所有的资源文件,远远超过用户需要的资源数量,导致带宽资源和本地内存资源的消耗以及响应时间过长等问题。本发明提出一种基于启发式算法的浏览器加载系统,在不影响浏览器渲染所需要的目标数据的前提下,精简访问请求。从而获得更低的资源消耗,更快的访问响应速度。
[0065] 本发明描述了一种基于启发式算法的网络请求优化系统:
[0066] 请求任务:包含三种用户输入信息,目标网站地址、待采集元素定位信息、预期结果的正则表达式;
[0067] 浏览器执行模块:包含浏览器与浏览器驱动用于渲染请求结果;
[0068] 代理模块:全局代理,接管浏览器与资源网站的所有请求;
[0069] 启发式控制器:与代理模块结合,对每个请求编号。控制每个请求是否通过。结合结果判决器的反馈,自动优化下一次的访问请求组合;
[0070] 资源网站:任务访问的网站资源;
[0071] 解析模块:支持XPath、CSS选择器、正则等元素定位语法,可以对浏览器渲染结果进行解析,输出解析结果;
[0072] 结果判决器:将解析结果与任务预期模板比较,判断结果是否符合用户预期,判断结果用于启发式控制器下一次迭代请求的优化;
[0073] 启发式控制器:根据梯度下降算法求得能正常解析结果的请求组合;
[0074] 请求决策器:将任务请求网址映射为唯一的关键字,以概率P读取配置中心存在的最优解。概率1-P重新迭代生成最优解;
[0075] 配置中心:以每个请求任务的网址作为关键字段,存储每种访问任务的多个最优解以及组合成功解析次数,若存在的配置已经无法正常获取数据则删除该配置。
[0076] 启发式控制器的设计中,本方案可以利用梯度下降的方式,获取最优的请求,过程如下:
[0077] 步骤一:先将第一次加载的全部请求,对请求的URL进行变量的通配符替换并将结果进行MD5计算,编码后每个请求会生成一个32位唯一字符串,作为请求的身份ID,所有ID集合记为x
[0078] 步骤二:定义目标函数f(x)为数据采集器判断能否获取数据目标的函数。x是f(x)能获取数据目标的解的集合。
[0079] 步骤三:初始化x为全集,全集的长度为n。
[0080] 步骤四:随机减少x中的m个元素,剩下的n-m个元素,生成新的多个集合xi,(i=1,2,3…)。
[0081] 步骤五:步骤四生成的xi,(i=1,2,3…),计算f(x)是否依然可以获取数据目标。如果可以获取,用xi替换x,重新进入步骤4进行新一轮的梯度下降。如果不可以继续获取数据目标迭代停止,输出当前x的集合。
[0082] 以上是梯度下降算法在本方案的一种应用。这个方法能自动化优化网络请求,但是算法存在梯度下降速度慢的问题,即收敛过程比较长,对于一个页面元素多的网站,我们要经过比较长时间的迭代才能收敛。为此,我们在此基础上,继续改进,提出一种变速率的梯度下降算法,能更快地收敛。
[0083] 计算步骤过程如下:
[0084] 步骤一:先将第一次加载的全部请求,对请求的URL进行变量的通配符替换并将结果进行Hash计算,编码后每个请求会生成一个32位唯一字符串,作为请求的身份ID,所有ID集合记为x
[0085] 步骤二:定义目标函数f(x)为数据采集器能否获取数据目标。x是f(x)能获取数据目标的解的集合。
[0086] 步骤三:初始化x为全集,全集的长度为n。
[0087] 步骤四:随机减少x中的m个元素,剩下的n-m个元素,生成新的多个集合xi,(i=1,2,3…)。
[0088] 步骤五:步骤四生成的xi,(i=1,2,3…),计算f(x)是否依然可以获取数据目标。如果可以获取目标,且满足条件的集合xi很多,我们对步骤四中的m修改m*(0.5+p),p为满足条件的xi的个数除以总的xi的个数。最终计算的m向上取整数和xi带入步骤四。
[0089] 如果不可以继续获取数据目标迭代停止,输出当前x的集合。
[0090] 根据解空间的大小,变换梯度下降的速率,能更快速的收敛到我们的最终解,如果步骤5中的(p+0.5)始终取值为1,算法退化为普通的梯度下降算法。
[0091] 结果判决器:解析模块通过Xpath、CSS选择器、正则等方式定位到本次请求页面的元素并输出解析结果,结果判决器结合用户输入的预期结果模板判断本次请求是否符合预期,判决结果会影响启发式控制器的下一次迭代优化方向。判决器执行流程图:
[0092] 请求决策器:Http/Https访问分为大致8中类型,其中常见的访问类型有GET/POST等,每种访问类型都有自己固定的格式。请求决策器将请求任务的首要访问网站通过一定的映射规则得到一个唯一的索引值。该映射规则使用通配符替换掉请求中的变量,最后将剔除变量后的访问连接作为数据库中存储本次任务的索引。该索引可以用于判断配置中心是否存在本网站的最优解。若存在最优解则以概率P读取存在的解,而以1-P的概率重新通过启发式控制器迭代生成最优解。若不存在则直接迭代生成。
[0093] 本发明的请求决策器相较于现有优化方案无法感知网站改版有所改进。本方案中的求决策器可以以较大概率P使用已知的最优解。以较小概率(1-P)重新迭代最优解。能感知网站的改版,重新生成最优解组合。
[0094] 本发明的配置中心模块引入的请求决策器可以在提交任务时,检测任务类型优先从配置中心读取该网站采集最优解,该模块可以快速对已知任务进行请求优化。无需开发人员手动上传与配置网站的优化方案。
[0095] 本发明的启发式控制器,相较于现有优化方案需要开发人员事先配置过滤规则有所改进。本方案引入的启发式控制器可以结合梯度下降算法以及变速率梯度下降算法,自动寻找目标网络的最优化请求,在不影响采集结果准确性的前提下,达到人工优化的结果,且该过程无需开发人员参与,系统可以自动完成所有的操作。
[0096] 本发明根据算法控制每个资源请求:该步骤会根据启发式控制拦截与放行指定的请求,相较于传统的代理全量放行请求,改步骤可以实现精简请求的目的[0097] 本发明读取与更新最优解的过程:系统将每次迭代得出的最优解存储在配置中心中,系统会自己根据任务类型以及网站特征,读取配置中心已存在的最优解。在遇到网站改版的时候可以重新迭代出最优解并更新到配置中心供下一次相同类型的任务使用,无需开发人员手动配置以及发送配置文件到本系统,区别于现有的开发人员手动对每个网站配置不同类型的过滤规则以及将拦截规则与任务一起发送给代理服务。
[0098] 本发明根据算法控制每个资源请求:本系统创新性的引入了梯度下降算法来优化网络请求,通过是否影响采集结果作为判断依据,减少非必须的网络请求。比起现有方案手工拦截或正则匹配的方法对每个不同采集网站进行优化配置,本方法具有无需人工参与、自动适应网站改版、通用性强等优点。
[0099] 采用了本发明的基于启发式算法实现浏览器加载控制的系统及其方法,可以自动优化网络请求,极大的降低数据采集过程中采集方与被采集方的网络带宽需求、提高采集效率、降低被采集网站的请求连接资源消耗。系统自身可以适应网站的改版,重新迭代出最优解。该过程无需人员参与,不会影响正常的系统流程。现行的匹配规则需要预先知道请求流程才能配置相应的规则,对未知网络请求无法做到完全兼容。由于结合了启发式算法,本系统对网络请求进行优化时无需先验信息,可以适应绝大多数的网络采集任务。
[0100] 在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈