一种网页标题提取方法和系统与流程

文档序号:32394271发布日期:2022-11-30 09:37阅读:35来源:国知局
一种网页标题提取方法和系统与流程

1.本发明涉及网络信息数据处理技术领域,具体涉及一种网页标题提取方法和系统。


背景技术:

2.网页标题是对一个网页的高度概括,目前编程语言提取网站标题主要是通过发送网络请求网站url,然后通过正则匹配网站返回包中在title标签之间的文字作为网站的标题进行提取。
3.然而当网页标题不存在于title标签之间时,则无法匹配到网页标题,且网页标题存在于网页复杂/未知位置时,无法获取到网页标题。


技术实现要素:

4.本发明针对现有技术中的缺点,提供了一种网页标题提取方法和系统,突破了网页标题存在于网页复杂或未知位置时,无法获取到网页标题的瓶颈。
5.为了解决上述技术问题,本发明通过下述技术方案得以解决:一种网页标题提取方法,包括以下步骤:构建网页标题标签提取池;发送网页请求,判断网页是否存活,若存活,则结合浏览器的调用,获取最终网页的目标返回包;判断所述目标返回包是否命中网页标题标签提取池;若命中,则提取目标返回包中的网页标题;若不命中,则提取目标返回包中的网页标题,并存入网页标题标签提取池。
6.可选的,获取最终网页的目标返回包,包括以下步骤:构建网页跳转标签提取池;根据所述网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至所述存活网页返回包不命中所述网页跳转标签提取池,得到中间跳转网页;调用浏览器打开中间跳转网页,并跳转至最终网页,并基于所述最终网页获取目标返回包。
7.可选的,获取最终网页的目标返回包,包括以下步骤:构建网页跳转标签提取池;根据所述网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至所述存活网页返回包不命中所述网页跳转标签提取池,得到中间跳转网页;基于所述中间跳转网页获取中间返回包,并判断所述中间返回包是否命中网页标题标签提取池;若命中,则判定中间返回包即为目标返回包,若未命中,则调用浏览器打开中间跳转网页,并跳转至最终网页,基于所述最终网页获取目标返回包。
8.可选的,重复命中跳转处理,包括以下步骤:判断所述存活网页返回包是否命中所述网页跳转标签提取池;若是,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断所述跳转网页返回包是否命中所述网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
9.可选的,还包括:基于所述最终网页获取跳转数据,并将所述跳转数据存入跳转标签提取池。
10.一种网页标题提取系统,包括第一构建单元、存活验证单元和第一提取池命中单元;所述第一构建单元用于构建网页标题标签提取池;所述存活验证单元用于发送网页请求,判断网页是否存活,若存活,则结合浏览器的调用,获取最终网页的目标返回包;所述第一提取池命中单元用于判断所述目标返回包是否命中网页标题标签提取池;若命中,则提取目标返回包中的网页标题;若不命中,则提取目标返回包中的网页标题,并存入网页标题标签提取池。
11.可选的,所述存活验证单元包括第二构建单元、循环跳转单元和调用提取单元;所述第二构建单元用于构建网页跳转标签提取池;所述循环跳转单元用于根据所述网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至所述存活网页返回包不命中所述网页跳转标签提取池,得到中间跳转网页;所述调用提取单元用于调用浏览器打开中间跳转网页,并跳转至最终网页,并基于所述最终网页获取目标返回包。
12.可选的,所述存活验证单元包括第二构建单元、循环跳转单元、第二提取池命中单元和调用提取单元;所述第二构建单元用于构建网页跳转标签提取池;所述循环跳转单元用于根据所述网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至所述存活网页返回包不命中所述网页跳转标签提取池,得到中间跳转网页;所述第二提取池命中单元用于基于所述中间跳转网页获取中间返回包,并判断所述中间返回包是否命中网页标题标签提取池;所述调用提取单元用于若命中,则判定中间返回包即为目标返回包,若未命中,则调用浏览器打开中间跳转网页,并跳转至最终网页,基于所述最终网页获取目标返回包。
13.可选的,所述循环跳转单元包括第三提取池命中单元和网页跳转单元;所述第三提取池命中单元用于判断所述存活网页返回包是否命中所述网页跳转标签提取池;所述网页跳转单元用于,若判断结果命中,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断所述跳转网页返回包是否命中所述网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行上述任意一项所述的网页标题提取方法。
15.采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:通过引入网页标题标签提取池,使得即使网页标题即使不存在于《title》《/title》标签之间时,也能够提取到网页标题,同时,通过网页跳转标签提取池的设置,使得即使网页标题存在于复杂位置或未知位置,也能够提取到网页标题。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1为本实施例一提出的一种网页标题提取方法流程图;图2为本实施例二提出的一种网页标题提取方法流程图。
具体实施方式
18.下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
19.实施例一如图1所示,一种网页标题提取方法,包括以下步骤:构建网页标题标签提取池;发送网页请求,判断网页是否存活,若存活,则结合浏览器的调用,获取最终网页的目标返回包,具体地,本地客户端通过编程语言发送网络请求包,请求需要提取网站标题的url,服务器返回响应包,然后通过响应包内的状态码判断该网页是否存活,更进一步地,若状态码小于405,则代表网页不存在或网页异常,无需进行标题提取操作,判定该网页不存活,不再获取该网页url的网页标题,反之,则判定网页存活,另一方面,需要说明的是,网页标题标签提取池为编程语言中所有实现网页标题的标签归拢所形成的提取库。
20.获取最终网页的目标返回包,包括以下步骤:构建网页跳转标签提取池;根据网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至存活网页返回包不命中网页跳转标签提取池,得到中间跳转网页;调用浏览器打开中间跳转网页,并跳转至最终网页,并基于最终网页获取目标返回包。
21.判断网页存活后,首先获取服务端返回的存活网页返回包,且该存活网页返回包即为响应包,然后构建网页跳转标签提取池,其中,网页跳转标签提取池为编程语言实现自动跳转的标签、函数、方法中的任意一种的归拢所形成的提取库,具体地标签、函数和方法名单可以从各大编程语言的官方文档中获取,例如html编程语言中的meta标签、php编程语言中的header函数、javascript语言中的window.location.href()方法等。
22.此时,由于仅仅判断了该网页的存活情况,而实际情况则是,可能存在最终网页是经过最初打开的存活网页经过多次跳转后得到的情况,例如,最初打开的存活网页a,而最终网页为d,最终网页d需要通过存活网页a跳转到中间网页b,再由中间网页b跳转到中间网页c,最后中间网页c跳转后才能得到最终网页d,而需要提取的网页标题则存在于最终网页
d中,因此,需要通过重复命中跳转处理挖掘出该网页的最终网页。
23.进一步地,重复命中跳转处理,包括以下步骤:判断存活网页返回包是否命中网页跳转标签提取池;若是,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断跳转网页返回包是否命中网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
24.具体地,首先将存活网页返回包与网页跳转标签提取池做正则匹配,若命中,则代表初始打开的存活网页并非最终网页,此时需要进行网页跳转至中间网页,然后再获取中间网页返回的响应包,将中间网页的响应包与网页跳转标签提取池做正则匹配,若还是命中则同样的,该中间网页也并非最终网页,则继续重新获取最新的中间网页的响应包与网页跳转标签提取池做正则匹配,直至正则匹配不命中,此时该不命中的网页即为最终得到的中间跳转网页,而由于网页跳转标签提取池仅仅是一个归拢提取库,该提取库并非能归拢所有情况,可能存在遗漏情况,因此,为确保一次性精准获取到最终网页,此时在得到中间跳转网页后,还需通过selenium调用浏览器打开中间跳转网页url,进行跳转容错处理,若调用浏览器后,未进行跳转,则代表该中间跳转网页即为最终网页,若进行了跳转,则将中间跳转网页跳转后的网页判定为最终网页,并获取最终网页的响应包,即目标返回包,然后基于最终网页获取跳转数据,并将跳转数据存入跳转标签提取池,即,将目标返回包中所包含的实现自动跳转的标签或函数或方法补充入网页跳转标签提取池,其中,实现自动跳转的标签或函数或方法即为跳转数据,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
25.其中,需要说明的是,selenium所调用的浏览器可以为任意浏览器,例如360浏览器、chrome浏览器、搜狗浏览器、qq浏览器等可以实现打开网页功能中的任意一种,在此不做限制。
26.获取到目标返回包后,需进一步判断目标返回包是否命中网页标题标签提取池;若命中,则提取目标返回包中的网页标题;若不命中,则提取目标返回包中的网页标题,并存入网页标题标签提取池。
27.将目标返回包与网页标题标签提取池做正则匹配,例如,当访问当访问https://xx.com/的时候,返回的http状态码小于405,返回包内容为:《head》;
ꢀꢀꢀꢀ
《title》设置标题《/title》;《/head》;此时返回包中有html编程语言中实现网页标题的《title》,在网页标题标签提取池中,于是提取网站标题,为【设置标题】,另一方面,由于在提取网页标题过程中,可能存在多个网页标题命中结果,此时,需要将所有提取到的网页标题根据编程语言的优先级进行排序,选取其中优先级最高的编程语言匹配检索的结构作为网页url的网页标题,其中设定html的优先级别为最高,然后是php、jsp等网站后端语言,优先级最低的是javascript语言。
28.若目标返回包与网页标题标签提取池的正则匹配未命中,则代表网页标题标签提取池的内容并不完善,因此,需要将该网站url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
29.本实施例更适用于当网页跳转标签提取池与网页标题标签提取池在完善初期的情况,此时,由于两个提取池并不完善,因此需要在进行最终网页判断时,将调用浏览器打开跳转网页的步骤移至前端,从而使得在网页标签提取成功的同时,达到完善网页跳转标签提取池与网页标题标签提取池的目的。
30.实施例二如图2所示,一种网页标题提取方法,包括以下步骤:构建网页标题标签提取池;发送网页请求,判断网页是否存活,若存活,则结合浏览器的调用,获取最终网页的目标返回包,具体地,本地客户端通过编程语言发送网络请求包,请求需要提取网站标题的url,服务器返回响应包,然后通过响应包内的状态码判断该网页是否存活,更进一步地,若状态码小于405,则代表网页不存在或网页异常,无需进行标题提取操作,判定该网页不存活,不再获取该网页url的网页标题,反之,则判定网页存活,另一方面,需要说明的是,网页标题标签提取池为编程语言中所有实现网页标题的标签归拢所形成的提取库。
31.本实施例与实施例一不同之处在于,获取最终网页的目标返回包,包括以下步骤:构建网页跳转标签提取池;根据网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至存活网页返回包不命中网页跳转标签提取池,得到中间跳转网页;基于中间跳转网页获取中间返回包,并判断中间返回包是否命中网页标题标签提取池;若命中,则判定中间返回包即为目标返回包,若未命中,则调用浏览器打开中间跳转网页,并跳转至最终网页,基于最终网页获取目标返回包。
32.具体地,判断网页存活后,首先获取服务端返回的存活网页返回包,且该存活网页返回包即为响应包,然后构建网页跳转标签提取池,其中,网页跳转标签提取池为编程语言实现自动跳转的标签、函数、方法中的任意一种的归拢所形成的提取库,具体地标签、函数和方法名单可以从各大编程语言的官方文档中获取,例如html编程语言中的meta标签、php编程语言中的header函数、javascript语言中的window.location.href()方法等。
33.进一步地,重复命中跳转处理,包括以下步骤:判断存活网页返回包是否命中网页跳转标签提取池;若是,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断跳转网页返回包是否命中网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
34.具体地,首先将存活网页返回包与网页跳转标签提取池做正则匹配,若命中,则代表初始打开的存活网页并非最终网页,此时需要进行网页跳转至中间网页,然后再获取中间网页返回的响应包,将中间网页的响应包与网页跳转标签提取池做正则匹配,若还是命中则同样的,该中间网页也并非最终网页,则继续重新获取最新的中间网页的响应包与网页跳转标签提取池做正则匹配,直至正则匹配不命中,此时该不命中的网页即为最终得到的中间跳转网页。
35.然后获取中间跳转网页返回的响应包,即中间返回包,并进一步判断中间返回包是否命中网页标题标签提取池;若命中,则提判定中间返回包即为目标返回包;若不命中,代表中间跳转网页存在两种可能性,第一种为该中间跳转网页并非最终网页,这是由于网页跳转标签提取池仅仅是一个归拢提取库,该提取库并非能归拢所有情况,可能存在遗漏情况,第二种为该中间返回包中的网页标题并不存在于网页标题标签提取池中,需要进一步丰富网页标题标签提取池,因此,对两种情况作逐步排查。
36.首先需通过selenium调用浏览器打开中间跳转网页url,进行跳转容错处理,若调
用浏览器后,未进行跳转,则代表该中间跳转网页即为最终网页,导致中间返回包未命中网页标题标签提取池的是由第二种情况产生的,此时需要将该网页url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
37.若调用浏览器后,进行了网页跳转,则代表该中间跳转网页非最终网页,导致中间返回包未命中网页标题标签提取池的是由第一种情况产生的,此时需将中间跳转网页跳转后的网页判定为最终网页,并获取最终网页的响应包,即目标返回包,然后基于最终网页获取跳转数据,并将跳转数据存入跳转标签提取池,即,将目标返回包中所包含的实现自动跳转的标签或函数或方法补充入网页跳转标签提取池,其中,实现自动跳转的标签或函数或方法即为跳转数据,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
38.其中,需要说明的是,selenium所调用的浏览器可以为任意浏览器,例如360浏览器、chrome浏览器、搜狗浏览器、qq浏览器等可以实现打开网页功能中的任意一种,在此不做限制。
39.最后,将目标返回包与网页标题标签提取池做正则匹配,例如,当访问当访问https://xx.com/的时候,返回的http状态码小于405,返回包内容为:《head》;
ꢀꢀꢀꢀ
《title》设置标题《/title》;《/head》;此时返回包中有html编程语言中实现网页标题的《title》,在网页标题标签提取池中,于是提取网站标题,为【设置标题】,另一方面,由于在提取网页标题过程中,可能存在多个网页标题命中结果,此时,需要将所有提取到的网页标题根据编程语言的优先级进行排序,选取其中优先级最高的编程语言匹配检索的结构作为网页url的网页标题,其中设定html的优先级别为最高,然后是php、jsp等网站后端语言,优先级最低的是javascript语言。
40.若目标返回包与网页标题标签提取池的正则匹配未命中,则同样代表网页标题标签提取池的内容并不完善,因此,需要将该网站url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
41.与实施例一相比,本实施例更适用于当网页跳转标签提取池与网页标题标签提取池高度完善的情况,此时,在进行最终网页判断时,由于网页跳转标签提取池高度完善,因此可将调用浏览器打开跳转网页的步骤移至后端,减少时间,以及客户端计算处理成本。
42.实施例三一种网页标题提取系统,包括第一构建单元、存活验证单元和第一提取池命中单元,第一构建单元用于构建网页标题标签提取池;存活验证单元用于发送网页请求,判断网页是否存活,若存活,则获取最终网页的目标返回包,具体地,本地客户端通过编程语言发送网络请求包,请求需要提取网站标题的url,服务器返回响应包,然后通过响应包内的状态码判断该网页是否存活,更进一步地,若状态码小于405,则代表网页不存在或网页异常,无需进行标题提取操作,判定该网页不存活,不再获取该网页url的网页标题,反之,则判定
网页存活,另一方面,需要说明的是,网页标题标签提取池为编程语言中所有实现网页标题的标签归拢所形成的提取库。
43.存活验证单元包括第二构建单元、循环跳转单元和调用提取单元;第二构建单元用于构建网页跳转标签提取池;循环跳转单元用于根据网页请求获取存活网页返回包,并与网页跳转标签提取池进行重复命中跳转处理,直至存活网页返回包不命中网页跳转标签提取池,得到中间跳转网页;调用提取单元用于调用浏览器打开中间跳转网页,并跳转至最终网页,并基于最终网页获取目标返回包。
44.判断网页存活后,首先获取服务端返回的存活网页返回包,且该存活网页返回包即为响应包,然后构建网页跳转标签提取池,其中,网页跳转标签提取池为编程语言实现自动跳转的标签、函数、方法中的任意一种的归拢所形成的提取库,具体地标签、函数和方法名单可以从各大编程语言的官方文档中获取,例如html编程语言中的meta标签、php编程语言中的header函数、javascript语言中的window.location.href()方法等。
45.此时,由于仅仅判断了该网页的存活情况,而实际情况则是,可能存在最终网页是经过最初打开的存活网页经过多次跳转后得到的情况,例如,最初打开的存活网页a,而最终网页为d,最终网页d需要通过存活网页a跳转到中间网页b,再由中间网页b跳转到中间网页c,最后中间网页c跳转后才能得到最终网页d,而需要提取的网页标题则存在于最终网页d中,因此,需要通过重复命中跳转处理挖掘出该网页的最终网页。
46.进一步地,循环跳转单元包括第三提取池命中单元和网页跳转单元;第三提取池命中单元用于判断存活网页返回包是否命中网页跳转标签提取池;网页跳转单元用于,若判断结果命中,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断跳转网页返回包是否命中网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
47.具体地,首先将存活网页返回包与网页跳转标签提取池做正则匹配,若命中,则代表初始打开的存活网页并非最终网页,此时需要进行网页跳转至中间网页,然后再获取中间网页返回的响应包,将中间网页的响应包与网页跳转标签提取池做正则匹配,若还是命中则同样的,该中间网页也并非最终网页,则继续重新获取最新的中间网页的响应包与网页跳转标签提取池做正则匹配,直至正则匹配不命中,此时该不命中的网页即为最终得到的中间跳转网页,而由于网页跳转标签提取池仅仅是一个归拢提取库,该提取库并非能归拢所有情况,可能存在遗漏情况,因此,为确保一次性精准获取到最终网页,此时在得到中间跳转网页后,还需通过selenium调用浏览器打开中间跳转网页url,进行跳转容错处理,若调用浏览器后,未进行跳转,则代表该中间跳转网页即为最终网页,若进行了跳转,则将中间跳转网页跳转后的网页判定为最终网页,并获取最终网页的响应包,即目标返回包,然后基于最终网页获取跳转数据,并将跳转数据存入跳转标签提取池,即,将目标返回包中所包含的实现自动跳转的标签或函数或方法补充入网页跳转标签提取池,其中,实现自动跳转的标签或函数或方法即为跳转数据,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
48.其中,需要说明的是,selenium所调用的浏览器可以为任意浏览器,例如360浏览器、chrome浏览器、搜狗浏览器、qq浏览器等可以实现打开网页功能中的任意一种,在此不做限制。
49.获取到目标返回包后,第一提取池命中单元需进一步判断目标返回包是否命中网
页标题标签提取池;若命中,则提取目标返回包中的网页标题;若不命中,则提取目标返回包中的网页标题,并存入网页标题标签提取池。
50.将目标返回包与网页标题标签提取池做正则匹配,例如,当访问当访问https://xx.com/的时候,返回的http状态码小于405,返回包内容为:《head》;
ꢀꢀꢀꢀ
《title》设置标题《/title》;《/head》;此时返回包中有html编程语言中实现网页标题的《title》,在网页标题标签提取池中,于是提取网站标题,为【设置标题】,另一方面,由于在提取网页标题过程中,可能存在多个网页标题命中结果,此时,需要将所有提取到的网页标题根据编程语言的优先级进行排序,选取其中优先级最高的编程语言匹配检索的结构作为网页url的网页标题,其中设定html的优先级别为最高,然后是php、jsp等网站后端语言,优先级最低的是javascript语言。
51.若目标返回包与网页标题标签提取池的正则匹配未命中,则代表网页标题标签提取池的内容并不完善,因此,需要将该网站url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
52.本实施例更适用于当网页跳转标签提取池与网页标题标签提取池在完善初期的情况,此时,由于两个提取池并不完善,因此需要在进行最终网页判断时,将调用浏览器打开跳转网页的步骤移至前端,从而使得在网页标签提取成功的同时,达到完善网页跳转标签提取池与网页标题标签提取池的目的。
53.实施例四一种网页标题提取系统,包括第一构建单元、存活验证单元和第一提取池命中单元,第一构建单元用于构建网页标题标签提取池;存活验证单元用于发送网页请求,判断网页是否存活,若存活,则获取最终网页的目标返回包,具体地,本地客户端通过编程语言发送网络请求包,请求需要提取网站标题的url,服务器返回响应包,然后通过响应包内的状态码判断该网页是否存活,更进一步地,若状态码小于405,则代表网页不存在或网页异常,无需进行标题提取操作,判定该网页不存活,不再获取该网页url的网页标题,反之,则判定网页存活,另一方面,需要说明的是,网页标题标签提取池为编程语言中所有实现网页标题的标签归拢所形成的提取库。
54.本实施例与实施例三不同之处在于,存活验证单元包括第二构建单元、循环跳转单元、第二提取池命中单元和调用提取单元;第二构建单元用于构建网页跳转标签提取池;循环跳转单元用于根据网页请求获取存活网页返回包与网页跳转标签提取池进行重复命中跳转处理,直至存活网页返回包不命中网页跳转标签提取池,得到中间跳转网页;第二提取池命中单元用于基于中间跳转网页获取中间返回包,并判断中间返回包是否命中网页标题标签提取池;调用提取单元用于若命中,则判定中间返回包即为目标返回包,若未命中,则调用浏览器打开中间跳转网页,并跳转至最终网页,基于最终网页获取目标返回包。
55.具体地,判断网页存活后,首先获取服务端返回的存活网页返回包,且该存活网页返回包即为响应包,然后构建网页跳转标签提取池,其中,网页跳转标签提取池为编程语言
实现自动跳转的标签、函数、方法中的任意一种的归拢所形成的提取库,具体地标签、函数和方法名单可以从各大编程语言的官方文档中获取,例如html编程语言中的meta标签、php编程语言中的header函数、javascript语言中的window.location.href()方法等。
56.进一步地,循环跳转单元包括第三提取池命中单元和网页跳转单元;第三提取池命中单元用于判断存活网页返回包是否命中网页跳转标签提取池;网页跳转单元用于,若判断结果命中,则进行网页跳转,并获取跳转后的网页的跳转网页返回包,判断跳转网页返回包是否命中网页跳转标签提取池;若否,则判定该存活网页为中间跳转网页。
57.具体地,首先将存活网页返回包与网页跳转标签提取池做正则匹配,若命中,则代表初始打开的存活网页并非最终网页,此时需要进行网页跳转至中间网页,然后再获取中间网页返回的响应包,将中间网页的响应包与网页跳转标签提取池做正则匹配,若还是命中则同样的,该中间网页也并非最终网页,则继续重新获取最新的中间网页的响应包与网页跳转标签提取池做正则匹配,直至正则匹配不命中,此时该不命中的网页即为最终得到的中间跳转网页。
58.然后获取中间跳转网页返回的响应包,即中间返回包,并进一步判断中间返回包是否命中网页标题标签提取池;若命中,则提判定中间返回包即为目标返回包;若不命中,代表中间跳转网页存在两种可能性,第一种为该中间跳转网页并非最终网页,这是由于网页跳转标签提取池仅仅是一个归拢提取库,该提取库并非能归拢所有情况,可能存在遗漏情况,第二种为该中间返回包中的网页标题并不存在于网页标题标签提取池中,需要进一步丰富网页标题标签提取池,因此,对两种情况作逐步排查。
59.首先需通过selenium调用浏览器打开中间跳转网页url,进行跳转容错处理,若调用浏览器后,未进行跳转,则代表该中间跳转网页即为最终网页,导致中间返回包未命中网页标题标签提取池的是由第二种情况产生的,此时需要将该网页url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
60.若调用浏览器后,进行了网页跳转,则代表该中间跳转网页非最终网页,导致中间返回包未命中网页标题标签提取池的是由第一种情况产生的,此时需将中间跳转网页跳转后的网页判定为最终网页,并获取最终网页的响应包,即目标返回包,然后基于最终网页获取跳转数据,并将跳转数据存入跳转标签提取池,即,将目标返回包中所包含的实现自动跳转的标签或函数或方法补充入网页跳转标签提取池,其中,实现自动跳转的标签或函数或方法即为跳转数据,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
61.其中,需要说明的是,selenium所调用的浏览器可以为任意浏览器,例如360浏览器、chrome浏览器、搜狗浏览器、qq浏览器等可以实现打开网页功能中的任意一种,在此不做限制。
62.最后,将目标返回包与网页标题标签提取池做正则匹配,例如,当访问当访问https://xx.com/的时候,返回的http状态码小于405,返回包内容为:《head》;
ꢀꢀꢀꢀ
《title》设置标题《/title》;《/head》;
此时返回包中有html编程语言中实现网页标题的《title》,在网页标题标签提取池中,于是提取网站标题,为【设置标题】,另一方面,由于在提取网页标题过程中,可能存在多个网页标题命中结果,此时,需要将所有提取到的网页标题根据编程语言的优先级进行排序,选取其中优先级最高的编程语言匹配检索的结构作为网页url的网页标题,其中设定html的优先级别为最高,然后是php、jsp等网站后端语言,优先级最低的是javascript语言。
63.若目标返回包与网页标题标签提取池的正则匹配未命中,则同样代表网页标题标签提取池的内容并不完善,因此,需要将该网站url记录到日志中,后续由人工提取出网页标题标签,并将该网页标题标签补充入网页标题标签提取池,从而进一步丰富网页标题标签提取池,并正向提高网站标题获取的成功率。
64.与实施例三相比,本实施例更适用于当网页跳转标签提取池与网页标题标签提取池高度完善的情况,此时,在进行最终网页判断时,由于网页跳转标签提取池高度完善,因此可将调用浏览器打开跳转网页的步骤移至后端,减少时间,以及客户端计算处理成本。
65.一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,执行实施例一或实施例二任意一项的网页标题提取方法。
66.计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
67.在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、rf等等,或者上述的任意合适的组合。
68.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、模组或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元、模组或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
69.所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
70.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
71.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读
介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。
72.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
73.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本技术构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1