一种网站目标页的发现方法及装置与流程

文档序号:13676573阅读:122来源:国知局
技术领域本发明涉及互联网爬虫领域,特别是涉及一种网站目标页的发现方法及装置。

背景技术:
互联网爬虫技术,通常是从指定的网站入口页,通过遍历网站的页面链接,使用正则匹配的方法找到期望的页面链接。然而,互联网网站的层次各不相同,不同行业的网站分类层次不同,同一行业的不同网站分类层次页不同。例如,电商行业的网站分类层次通常依次为入口页面、分类页面、分页页面和详细页面,而汽车行业的网站分类层次通常依次为入口页面、车型列表、车系列表和车系页面。在现实应用场景中,往往需要爬虫发现业务去获取目标页的地址,从而可基于发现的所述目标页的地址爬取其他有用的信息。然而,现有技术中,由于上述网站分类层次的不同,需要不同的爬虫程序才能适应不同类网站的目标页地址的发现,这使得为爬取不同的网站需要耗费较大资源。

技术实现要素:
本发明解决的技术问题是提供一种网站目标页的发现方法及装置,使得可以通过一套通用的爬虫系统来爬取不同网站的目标页,节省了为爬取不同功能网站目标页所耗费的资源。为解决上述技术问题,本发明实施例提供一种网站目标也的发现方法,所述方法包括:从URL队列中提取具有步骤标识的URL地址;判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识;当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址;为所述下一级URL地址确定步骤标识,所述下一级URL地址的步骤标识不同于所述当前URL地址的步骤标识;将所述下一级URL地址加入所述URL队列。可选地,所述网站目标页的发现方法还包括:当所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址。可选地,所述网站目标页的发现方法还包括:重复提取所述URL地址、判断所述步骤标识、进行抓取操作、确定步骤标识以及加入所述URL队列的步骤,直至所述URL队列中的全部URL地址的步骤标识都是所述最终步骤标识。可选地,所述根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,包括:将所述当前URL地址指向的页面的数据信息中的URL地址与预先配置的正则表达式进行匹配,以筛选出满足所述正则表达式的URL地址,得到所述下一级URL地址。可选地,所述根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,包括:使用选择器在所述当前URL地址指向的页面定位所述下一级URL地址所在的页面区域,再进行所述下一级URL地址的抓取。所述网站目标页的发现方法,还包括:初始进入所述URL队列中的URL地址通过枚举或配置模板生成。本发明实施例还提供一种网站目标页的发现装置,包括:提取单元,适于从URL队列中提取具有步骤标识的URL地址;判断单元,适于判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识;抓取单元,适于当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址;标记单元,适于为所述下一级URL地址确定步骤标识,所述下一级URL地址的步骤标识不同于所述当前URL地址的步骤标识;添加单元,适于将所述下一级URL地址加入所述URL队列。可选地,所述网站目标页的发现装置,还包括:存储单元,适于当所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址。可选地,所述网站目标页的发现装置还包括:循环单元,适于控制所述提取单元、判断单元、抓取单元和标记单元分别重复提取所述URL地址、判断所述步骤标识、进行抓取操作、确定步骤标识以及加入所述URL队列的步骤,直至所述URL队列中的全部URL地址的步骤标识都是所述最终步骤标识。可选地,所述抓取单元适于:将所述当前URL地址指向的页面的数据信息中的URL地址与预先配置的正则表达式进行匹配,以筛选出满足所述正则表达式的URL地址,得到所述下一级URL地址。可选地,所述抓取单元还适于:使用选择器在所述当前URL地址指向的页面定位所述下一级URL地址所在的页面区域,再进行所述下一级URL地址的抓取。可选地,初始进入所述URL队列中的URL地址通过枚举或配置模板生成。与现有技术相比,本发明实施例的技术方案具有以下有益效果:本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。进一步地,本发明实施例的技术方案在所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址,从而为基于抓取的URL地址的爬取业务提供便利有效的爬取数据。附图说明图1是本发明实施例中的一种网站目标页的发现方法的流程图;图2是本发明实施例中的另一种网站目标页的发现方法的流程图;图3是本发明实施例中的一种网站目标页的发现装置的结构示意图;图4是本发明实施例中的另一种网站目标页的发现装置的结构示意图。具体实施方式如背景技术所言,在现实应用场景中,往往需要爬虫发现业务去获取网站目标页的地址,从而可基于发现的所述网站目标页的地址爬去其他有用的信息。然而,现有技术中,由于网站分类层次的不同,需要不同的爬虫程序才能适应不同类网站的发现系统,这使得为爬取不同的网站需要耗费较大资源。本文所指网站目标页为从特定网站的分类层次中所要抓取的URL(UniformResourceLocator,统一资源定位器)地址指向的页面。本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。图1是本发明实施例中的一种网站目标页的发现方法的流程图。下面结合图1对所述网站目标页的发现方法进行说明。步骤S101:从URL队列中提取具有步骤标识的URL地址。在具体实施中,所述URL队列中存储用于下一次抓取的URL地址,所述URL队列中的URL地址具有步骤标识,所述步骤标识唯一标识所述当前URL的层级。初次进入所述URL队列的URL地址的步骤标识可以进行预设。在具体实施中,初次进入所述URL队列中的URL地址,可以通过枚举或配置模板生成,生成初次进入URL队列的URL地址的同时,需为初次进入URL队列的URL地址初始化步骤标识。具体生成方式可以预先定义于配置文件中。在另一实施例中,所述初次进入所述URL队列中的URL地址也可以是已经获取并存储的,不需要配置文件生成。步骤S102:判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识。在具体实施中,所述当前URL地址为每次从所述URL队列中提取以进行抓取操作的URL地址。在具体实施中,由于不同的网站都有各自的分类层次,通过分析该特定网站分类层次可以得知,要获取所述网站目标页对应的URL地址应该进行多少步骤的抓取,从而可以预设所述最终步骤标识。本领域技术人员应当理解,初始化初次进入URL队列的URL地址的步骤标识以及设置所述最终步骤标识时,应当根据初次进入URL队列的URL地址所处的分类层次,与所述目标页所处的分类层次之间的关系来进行适应性的设置。步骤S103:当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址。在具体实施中,使用所述当前URL地址执行抓取操作时,可以下载所述当前URL地址指向的页面信息,例如可以根据所述当前URL地址从对应的服务器下载html(HyperTextMarkupLanguage,超文本标记语言)页面。所述页面信息中包含了下一层网站分类的页面对应的URL地址,即所述下一级URL地址。其中,抓取操作是与所述当前URL地址的步骤标识对应的,也就是说,不同的步骤标识对应的抓取操作通常是不同的。在具体实施中,可以使用选择器在所述当前URL地址指向的页面定位所述下一级URL地址所在的页面区域,再进行所述下一级URL地址的抓取。在具体实施中,每一次执行的抓取操作所执行的具体动作可以通过配置文件预先进行定义,即定义如何通过当前URL地址获得下一级的URL地址,本领域的技术人员可以理解通过配置文件定义抓取操作。具体地,可以通过预先定义的正则表达式从所述当前URL地址所指向页面中抓取下一级的URL地址,所述正则表达式可以对html页面信息中URL地址进行筛选,得到与所述正则表达式匹配的URL地址。在定义正则表达式是可以通过分析网站相邻两级的URL地址得到,并写入配置文件中,从而在执行抓取操作时实现从所述当前URL地址发现有效的URL地址,从而通过一次又一次的抓取操作的发现最终的所述网站目标页。例如,为发现一汽车网站A的车款页,该网站的分类层次为车型页-车系页面-车款页。假设所述当前URL地址为http://db.auto.sohu.com/,是该汽车网站中的其中一个车型页的URL地址,为了发现车款页面,该网站的下一级URL地址为车系页,通过浏览该网站发现,下一级车系页的URL地址中,其中一个为http://db.auto.sohu.com/jinkouaudi/3551,因此可以预定从车型页面抓取车系页面的正则表达式为http://db.auto.sohu.com/[\\\\w\\\\-]+/\\\\d+,以此类推,可以预定义从车型页抓取车款页的正则表达式。由此例可知,可以通过定义正则表达式层层发现URL地址,以得到最终的网站目标页。在具体实施中,当所述当前URL地址的步骤标识为所述最终步骤标识时,则说明成功发现所述网站目标页的URL地址。在具体实施中,所述网站目标页可以是网站的详细页,也可以是网站分类层次中的其他类页面。在上例中,车系页也可以是所述网站目标页。步骤S104:为所述下一级URL地址确定步骤标识,所述下一级URL地址的步骤标识不同于所述当前URL地址的步骤标识。在具体实施中,经步骤S103获取所述下一级的URL地址后,为所述下一级URL地址确定一个不同于所述当前URL地址的步骤标识,以示区分。一般地,步骤标识可以用正整数标识,在为下一级URL地址确定步骤标识时,可以在所述当前URL地址的步骤标识的基础上加一即可简单地实现。步骤S105:将所述下一级URL地址加入所述URL队列。在具体实施中,当所述当前URL地址的步骤标识并非所述最终步骤标识时,将所述下一级URL地址加入所述URL队列,从而可以在所述URL队列中提取到所述下一级URL地址进行下一次的抓取操作。下面通过举例对上述步骤的实施方式进行说明,本例中仍假设需要从汽车网站A发现车款页的URL地址,所述车款页即为所述网站目标页。通过分析可知,该汽车网站A的网站分类层次为车型页-车系页-车款页,通过分析所述汽车网站A每一级页面的URL地址,得到相应的正则表达式。配置取出的当前URL地址为车型页时,执行从车型页到车系页的抓取操作,配置取出的当前URL地址为车系页时,执行从车系页到车款页的抓取操作。在具体实施中,通过步骤标识来标识所述当前URL地址为哪一级的页面,例如可以配置步骤标识为1来标识所述当前URL地址为车型页,并配置相应的抓取操作为从车型页抓取车系页,依次类推。如采取分类层次往下一级则步骤标识加1的设置方式,那么所述车款页面类型的URL地址的步骤标识为3,则设置最终步骤标识为3。由此:执行步骤S101时,从所述URL队列中提取当前URL地址;执行步骤S102时,判断提取的所述当前URL地址的步骤标识号为1,由于1并非所述最终步骤标识,执行步骤S103;如果提取的所述当前URL地址的步骤标识号为3,则表明所述当前URL地址已经是所述网站目标页,在本例中为车款页,则不需要再进行抓取操作。执行步骤S103时,由于1并非所述最终步骤标识,则根据步骤标识1对所述当前URL地址指向的html页面执行相应的抓取操作,根据预定义的抓取操作可以得到:步骤标识为1时应从车型页抓取车系页。例如,可以使用选择器(sizzle)根据车系页的URL地址所处位置的对象标识(例如DOM标识),在车型页面的URL地址指向的页面信息中找到相应的抓取位置,并通过相应的正则表达式,得到该html页面中的所有车系页面的URL地址;执行步骤S104,将从当前车型页所抓取的所有下一级的车系页的URL地址确定步骤标识为2;执行步骤S105,将本次所抓取的车系页的URL地址加入所述URL队列。从上述过程可知,本实施例通过识别所述当前URL地址的步骤标识是否为最终步骤标识,可以判断是否还需要进行下一级URL地址的抓取,这样,当应用场景切换为爬去其他网站(例如二手房网站)的网站目标页面时,尽管其他网站的分类层次发生变化,也只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作(包括正则表达式的修改)的定义,以及最终步骤标识对应的该网站分类的层级即可,相比现有技术中需要重新提供一套为发现其他网站目标页的爬取程序而言,本发明的实施例只需要更改配置文件即可使用同一套爬取程序,从而节省了为适应不同的网站而开发不同的爬虫程序的耗费资源。本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。图2是本发明实施例中的另一种网站目标页的发现方法的流程图。请参照图2所示所述网站目标页的发现方法,可以包括以下步骤:步骤S201:从URL队列中提取具有步骤标识的URL地址;步骤S202:判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识;步骤S203:当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址;步骤S204:为所述下一级URL地址确定步骤标识,所述下一级URL地址的步骤标识不同于所述当前URL地址的步骤标识;步骤S205:将所述下一级URL地址加入所述URL队列;步骤S206:重复提取所述URL地址、判断所述步骤标识、进行抓取操作、确定步骤标识以及加入所述URL队列的步骤,直至所述URL队列中的全部URL地址的步骤标识都是所述最终步骤标识。在本实施例中,对步骤S201至步骤S205的描述请对应参照与图1中步骤S101至步骤S105,在此不再赘述。在步骤S206的具体实施中,通过重复执行步骤S201-205,可以基于初次获得的URL地址发现所有的所述网站目标页面。此时若对照上述发现车款页面的例子,所述URL队列的所有URL地址均为所发现的车款页面的URL地址。在具体实施中,可以将发现的所述车款页面的URL地址存储起来,从而可以方便地使用所述车款页面的URL地址进行其他爬取操作。本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。进一步地,本发明实施例的技术方案在所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址,从而为基于抓取的URL地址的爬取业务提供便利有效的爬取数据。下面对本发明实施例的所述网站目标页的发现方法对应的装置做进一步说明。图3是本发明实施例中的一种网站目标页的发现装置的结构示意图。如图3所示的网站目标页的发现装置30,可以包括:提取单元301,适于从URL队列中提取具有步骤标识的URL地址;判断单元302,适于判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识;抓取单元303,适于当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址;标记单元304,适于为所述下一级URL地址确定步骤标识,所述下一级URL地址的步骤标识不同于所述当前URL地址的步骤标识;添加单元305,适于将所述下一级URL地址加入所述URL队列。在具体实施中,所述抓取单元303适于将所述当前URL地址指向的页面的数据信息中的URL地址与预先配置的正则表达式进行匹配,以筛选出满足所述正则表达式的URL地址,得到所述下一级URL地址。在具体实施中,所述抓取单元还适于使用选择器在所述当前URL地址指向的页面定位所述下一级URL地址所在的页面区域,再进行所述下一级URL地址的抓取。在具体实施中,初始进入所述URL队列中的URL地址通过枚举或配置模板生成。本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。图4是本发明实施例中的另一种网站目标页的发现装置的结构示意图。如图4所示的网站目标页的发现装置40,可以包括:提取单元401、判断单元402、抓取单元403、标记单元404和添加单元405。所述提取单元401、判断单元402、抓取单元403、标记单元404和添加单元405的说明可对应参照图3中所示的提取单元301、判断单元302、抓取单元303、标记单元304和添加单元305的描述,在此不再赘述。在本实施例中,所述网站目标页的发现装置40还可以包括:存储单元406和循环单元407。其中:所述存储单元406,适于当所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址;所述循环单元407,适于重复提取所述URL地址、判断所述步骤标识、进行抓取操作、确定步骤标识以及加入所述URL队列的步骤,直至所述URL队列中的全部URL地址的步骤标识都是所述最终步骤标识。本发明实施例的技术方案通过从URL队列中提取具有步骤标识的URL地址,判断提取出的当前URL地址的步骤标识是否为预设的最终步骤标识,当所述当前URL地址的步骤标识并非所述最终步骤标识时,根据所述步骤标识对所述当前URL地址指向的页面执行抓取操作,以得到下一级URL地址,为所述下一级URL地址确定步骤标识,将所述下一级URL地址加入所述URL队列,当所述当前URL地址的步骤标识为所述最终步骤标识时,说明已经发现网站目标页的URL地址,从而实现在需要发现其他网站的目标页面时,只需要修改配置文件中生成初次放入URL队列中的URL地址的部分,每个与步骤标识对应的抓取操作的定义,以及最终步骤标识对应的该网站分类的层级即可即可复用原来的爬虫系统,进而节省了为适应不同的网站而开发不同的爬虫程序所耗费的资源。进一步地,本发明实施例的技术方案在所述当前URL地址的步骤标识为所述最终步骤标识时,存储所述当前URL地址,从而为基于抓取的URL地址的爬取业务提供便利有效的爬取数据。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1