CN110968756B - 网页爬取方法及装置 - Google Patents
网页爬取方法及装置 Download PDFInfo
- Publication number
- CN110968756B CN110968756B CN201811145540.3A CN201811145540A CN110968756B CN 110968756 B CN110968756 B CN 110968756B CN 201811145540 A CN201811145540 A CN 201811145540A CN 110968756 B CN110968756 B CN 110968756B
- Authority
- CN
- China
- Prior art keywords
- crawling
- rules
- domain name
- rule
- architecture
- 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
Links
- 230000009193 crawling Effects 0.000 title claims abstract description 430
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 101150055297 SET1 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 244000089409 Erythrina poeppigiana Species 0.000 description 1
- 235000009776 Rathbunia alamosensis Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网页爬取方法及装置,涉及爬取技术领域。本发明主要解决了现有技术中无法基于预先创建的爬取架构形成一个新的爬取架构对网页进行爬取的问题。本发明的方法包括:获取目标网页的域名,并确定与所述域名相匹配的规则;判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则;若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则;根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。本发明可广泛应用于爬取网页的场景中。
Description
技术领域
本发明涉及爬取技术领域,特别是涉及一种网页爬取方法及装置。
背景技术
随着网络技术的迅速发展,万维网中承载的信息越来越多,利用传统的搜索引擎技术搜索信息耗费大量时间,并且很难准确搜寻到用户需要的信息。如何快速有效地从大量的网络信息中获取用户需要的信息成为了亟待解决的问题。
为了解决该问题,网络爬虫应运而生。网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,能够快速准确地从网页中获取用户需要的信息。在使用爬虫爬取网页时,用户首先需要创建一个爬取架构(Schema),但是由于创建一个完整的爬取架构会花费用户大量的时间和精力,现有技术会通过共享机制则将其他用户预先创建的爬取架构进行共享,用户可以在需要时直接引用预先创建的爬取架构对网页进行爬取,但是无法基于预先创建的爬取架构,形成一个符合当前网页爬取需求的新的爬取架构,对网页进行爬取。
发明内容
有鉴于此,本发明提供的网页爬取方法及装置,主要目的在于解决现有技术中无法基于预先创建的爬取架构形成一个新的爬取架构对网页进行爬取的问题。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种网页爬取方法,该方法包括:
获取目标网页的域名,并确定与所述域名相匹配的规则;
判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则;
若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则;
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。
可选的,所述方法还包括:
若所述第一爬取构架中未包含与所述域名相匹配的至少部分规则,则创建具有与所述域名相匹配的规则的第三爬取构架;
通过所述第三爬取架构对所述目标网页进行爬取。
可选的,所述第一爬取构架中包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取架构中包含与所述域名相匹配的全部规则;或者,
所述第一爬取架构中包含与所述域名相匹配的部分规则;
所述第一爬取构架中未包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取构架中未包含任何与所述域名相匹配的规则。
可选的,若所述第一爬取架构中包含与所述域名相匹配的部分规则,所述方法还包括:
根据与所述域名相匹配的规则,以及所述与所述域名相匹配的部分规则,确定待创建规则;
创建所述待创建规则;
所述根据所述至少部分规则,创建第二爬取架构,包括:
根据创建的所述待创建规则和所述与所述域名相匹配的部分规则,创建所述第二爬取架构。
可选的,所述第一爬取架构和所述第二爬取架构中包括:字段属性,所述字段属性用于确定爬取架构需要爬取的字段和字段类型,每个规则具有对应的字段属性。
可选的,所述方法还包括:
判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1;
若是,则根据预置的匹配条件从所述相匹配的规则中确定用于爬取的规则;
所述通过所述第二爬取构架或所述第三爬取架构对所述目标网页进行爬取,包括:
所述第二爬取构架或所述第三爬取架构根据所述确定的规则对所述目标网页进行爬取。
可选的,所述方法还包括:
当监控到所述第一爬取构架中的所述规则被删除、和/或第一爬取构架中的所述规则对应的字段属性被删除、或所述第一爬取构架被删除时,将所述规则和/或所述规则对应的字段属性添加至所述第二爬取构架中;
解除所述第一爬取构架和所述第二爬取构架的继承关系。
第二方面,本发明还提供一种网页爬取装置,该装置包括:
获取单元,用于获取目标网页的域名;
确定单元,用于确定与所述域名相匹配的规则;
判断单元,用于判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则;
继承单元,用于当所述第一爬取构架中包含与所述域名相匹配的至少部分规则时,从所述第一爬取构架中继承所述至少部分规则;
创建单元,用于根据所述至少部分规则,创建第二爬取架构;
爬取单元,用于通过所述第二爬取构架对所述目标网页进行爬取。
可选的,所述创建单元,还用于当所述第一爬取构架中未包含与所述域名相匹配的至少部分规则时,创建具有与所述域名相匹配的规则的第三爬取构架;
所述爬取单元,还用于通过所述第三爬取架构对所述目标网页进行爬取。
可选的,所述第一爬取构架中包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取架构中包含与所述域名相匹配的全部规则;或者,
所述第一爬取架构中包含与所述域名相匹配的部分规则;
所述第一爬取构架中未包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取构架中未包含任何与所述域名相匹配的规则。
可选的,所述确定单元,还用于当所述第一爬取架构中包含与所述域名相匹配的部分规则时,根据与所述域名相匹配的规则,以及所述与所述域名相匹配的部分规则,确定待创建规则;
所述创建单元,还用于创建所述待创建规则;
所述创建单元,还用于根据创建的所述待创建规则和所述与所述域名相匹配的部分规则,创建所述第二爬取架构。
可选的,所述第一爬取架构和所述第二爬取架构中包括:字段属性,所述字段属性用于确定爬取架构需要爬取的字段和字段类型,每个规则具有对应的字段属性。
可选的,所述判断单元,还用于判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1;
所述确定单元,还用于当判断为是时,根据预置的匹配条件从所述相匹配的规则中确定用于爬取的规则;
所述爬取单元,还用于所述第二爬取构架或所述第三爬取架构根据所述确定的规则对所述目标网页进行爬取。
可选的,所述装置还包括:
添加单元,用于当监控到所述第一爬取构架中的所述规则被删除、和/或第一爬取构架中的所述规则对应的字段属性被删除、或所述第一爬取构架被删除时,将所述规则和/或所述规则对应的字段属性添加至所述第二爬取构架中;
解除单元,用于解除所述第一爬取构架和所述第二爬取构架的继承关系。
第三方面,为了实现上述目的,本发明还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的网页爬取方法。
第四方面,为了实现上述目的,本发明还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行第一方面所述的网页爬取方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的网页爬取方法及装置,与现有技术对网页进行爬取时,只能对预先创建的爬取架构进行全部引用,而无法通过预先创建的爬取架构形成一个新的爬取架构以使用,本发明在爬取目标网页时,先判断预先创建的爬取构架中是否包含与目标网页的域名匹配的规则,确定是否能够直接继承部分规则。在确定后根据继承的规则创建第二爬取架构,使第二爬取架构中既包含从其他爬取构架继承的规则也包含新创建的规则。第二爬取构架部分继承了先创建的爬取构架中的规则,即减少了创建爬取构架的时间,又使新创建的爬取构架能够满足当前网页的爬取需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种网页爬取方法的流程图;
图2示出了本发明实施例提供的一种第一爬取构架的组织示意图;
图3示出了本发明实施例提供的一种第一爬取构架的组织示意图;
图4示出了本发明实施例提供的另一种网页爬取方法的流程图;
图5示出了本发明实施例提供的一种网页爬取装置的框图;
图6示出了本发明实施例提供的另一种网页爬取装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照附图1所示,本发明实施例提供了一种网页爬取方法,该方法主要包括:
101、获取目标网页的域名,并确定与所述域名相匹配的规则。
在对网页的内容进行爬取之前,需要先获取整个待爬取的目标网页,并获取该目标网页的域名,进而确定与该域名相匹配的规则,以便后续使具有该匹配的规则的爬取构架根据对目标网页进行正确地爬取。进一步的,可以将该目标网页保存在本地,以便后续在本地进行爬取。
102、判断预先创建的第一爬取构架中是否包含与域名相匹配的至少部分规则。
预先创建的第一爬取构架是其他用户创建并向大众分享的爬取构架。如图2所示,爬取架构定义了网页的爬取方案,在用户通过爬虫执行爬取工作时,需要使用爬取架构中的不同字段属性(Property)来分别标识网页中需要爬虫爬取的不同字段,以及这些字段的类型。并会对爬取架构中的每一个字段属性设置对应的规则集合,该规则集合中包括若干规则,其中的每一个规则对应的是该字段属性在某一个网页上配置的解析规则,并且这些规则的作用域都是域名。例如,用于爬取新闻页的爬取架构中包括第一字段属性和第二字段属性,第一字段属性标识了爬取标题字段,字段的类型为文本;第二字段属性标识了爬取发布时间字段,字段的类型为时间。第一字段属性在页面https://new.qq.com/omn/20180730A01I2200上配置的规则是:#root>div>div>div.qq_conent.clearfix>div.LEFT>h1,该规则的作用域是qq.com。为了避免重复创建耗费时间,在确定了目标网页对应的规则后,会先在已有的爬取构架中查找与目标网页的域名相匹配的至少部分规则,域名相匹配的至少部分规则的情况包括第一爬取构架中包含了与该域名相匹配的全部规则,或者是第一爬取构架中包含了与域名相匹配的部分规则。
103、若第一爬取构架中包含与该域名相匹配的至少部分规则,则从第一爬取构架中继承该至少部分规则。
若从已有的第一爬取构架中查找到了与域名相匹配的全部规则或部分规则,则从该第一爬取构架中继承该全部规则或部分规则。如图2和图3所示,预先创建的Schema1中包含了与域名相匹配的部分规则Rule1和Rule2,即可以从Schema1继承Rule1和Rule2。
104、根据该至少部分规则,创建第二爬取架构,通过第二爬取构架对目标网页进行爬取。
在从第一爬取构架中确定了与目标网页的域名相匹配的部分或全部规则后,确定可以继承的规则以及待创建规则,然后创建该待创建规则。之后根据继承的规则和创建的规则来创建第二爬取构架,而不用耗费时间在第二爬取构架中创建全部的规则,以减少创建第二爬取构架耗费的时间。在第二爬取构架继承了第一爬取构架后,利用第二爬取构架对网页进行爬取时,也会同时利用第一爬取构架中的规则对该网页进行爬取。
本发明实施例提供的网页爬取方法,与现有技术对网页进行爬取时,只能对预先创建的爬取架构进行全部引用,而无法通过预先创建的爬取架构形成一个新的爬取架构以使用,本发明在爬取目标网页时,先判断预先创建的爬取构架中是否包含与目标网页的域名匹配的规则,确定是否能够直接继承部分规则。在确定后根据继承的规则创建第二爬取架构,使第二爬取架构中既包含从其他爬取构架继承的规则也包含新创建的规则。第二爬取构架部分继承了先创建的爬取构架中的规则,即减少了创建爬取构架的时间,又使新创建的爬取构架能够满足当前网页的爬取需求。
基于图1所示的网页爬取方法,本发明另一实施例进一步提供了另一种网页爬取方法,参照附图4所示,该方法主要包括:
201、获取目标网页的域名,并确定与域名相匹配的规则。
假设目标网页的域名为qq.com;如图2和图3所示,确定与域名qq.com相匹配的规则为Rule1。进一步的,目标网页可以是具有不同域名的多个网页,例如,获取第一目标网页的第一域名是qq.com,第二目标网页的第二域名是sina.com;然后确定与第一域名相匹配的规则为Rule1,与第二域名相匹配的规则为Rule2。
202、判断预先创建的第一爬取构架中是否包含与域名相匹配的至少部分规则;若判断为是,则执行步骤203;若判断为否,则执行步骤205。
第一爬取构架中包含与域名相匹配的至少部分规则,其中包括以下两种情况:第一爬取架构中包含与域名相匹配的全部规则;或者第一爬取架构中包含与域名相匹配的部分规则。而第一爬取构架中未包含与域名相匹配的至少部分规则,则包括以下情况:第一爬取构架中未包含任何与域名相匹配的规则。根据上述情况判断第一爬取构架中是否包含与域名相匹配的至少部分规则。
203、从第一爬取构架中继承该至少部分规则。
在确定了预先创建的爬取构架中包含与域名相匹配的部分规则后,则继承该部分规则。进一步的,在继承规则时,同时继承该规则对应的字段属性和规则集合。如图2和图3所示,由于继承的Rule1和Rule2对应一规则集合(RuleSet1)和一字段属性(Property1),因此会根据该对应关系会从Schema1中继承该Property1、RuleSet1、Rule1和Rule2,来进一步减少需要新创建的数据。
204、根据与域名相匹配的规则,以及与域名相匹配的部分规则,确定待创建规则。
预先根据需求确定与目标网页的域名相匹配的规则,然后在从其他爬取构架中继承了其中的部分规则后,即可根据剩余无法继承的部分规则确定待创建的规则,以便后续根据继承的规则和待创建的规则共同组成爬取目标网页需要的全部规则。
205、创建该待创建规则。
确定待创建规则后,即创建该待创建规则。进一步的,在确定当前继承的字段属性和规则集合中,未包括该待创建规则对应的字段属性和规则集合时,会在创建该待创建规则时,同步创建对应的字段属性和规则集合。如图3所示,创建Rule5、Rule6和Rule7,以及创建Rule6、Rule7对应的Property3和RuleSet3。
206、根据创建的待创建规则和与域名相匹配的部分规则,创建第二爬取架构。
如图3所示,获取继承的Rule1、Rule2、Property1和RuleSet1,以及创建的Rule5、Rule6、Rule7、Property3和RuleSet3,以创建Schema2。具体的,根据对应关系,将创建的Rule5和继承的Property1、RuleSet1进行关联,然后再通过已经全部关联好的Rule1、Rule2、Rule5、Property1、RuleSet1,以及Rule6、Rule7、Property3、RuleSet3,创建Schema2。
207、创建具有与域名相匹配的规则的第三爬取构架。
在无法从预先创建的爬取构建中继承规则时,就需要新创建与域名相匹配的全部规则,然后根据新创建的规则来创建第三爬取构架。
208、判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1;若判断为是,则执行步骤209;若判断为否,则执行步骤210。
在利用爬取构架爬取目标网页之前,还需要进一步判断爬取构架内与目标网页的域名相匹配的规则中,是否包括作用域相同且对应同一字段属性的多个规则。若不包括多个规则,则直接通过爬取构架进行爬取;若包括,则需要从中提取出一个规则,再进行爬取。这样是为了避免在同一域名下的网页爬取同一字段时,匹配了多个规则,造成爬取数据混乱。
209、根据预置的匹配条件从相匹配的规则中确定用于爬取的规则。
匹配条件可以是从对应同一字段属性且具有相同作用域的规则中提取创建时间最近的一个规则,或者从对应同一字段属性且具有相同作用域的多个规则中提取存储在本地的一个规则。
如图3所示,在Schema2中,对应Property1的Rule1和Rule5均是配置在同一域名上的规则,需要进一步根据预置的匹配条件从Rule1和Rule5中确定出最终用于爬取的规则。例如,当匹配条件为创建时间最近的规则时,由于Schema1在5日修改了Rule1,而Rule5是1日创建的,因此确定Rule1作为用于爬取的规则。当匹配条件为提取存储在本地的规则时,由于Rule5是用户在本地创建的,而Rule1是其他用户共享在服务器中的,因此确定Rule5作为用于爬取的规则。
210、创建的爬取架构根据确定的规则对目标网页进行爬取。
在根据继承的规则和待创建规则创建了第二爬取构架,或者根据与所述域名相匹配的规则创建了第三爬取构架,并且确定了直接使用爬取构架中的规则,或是根据匹配条件从中选择一个用于爬取的规则后,即可通过创建的爬取构架和确定的规则来爬取目标网页。
211、当监控到第一爬取构架中的规则被删除、和/或第一爬取构架中的规则对应的字段属性被删除、或第一爬取构架被删除时,将规则和/或规则对应的字段属性添加至第二爬取构架中。
当监控到被继承的规则从第一爬取构架中被删除、或者被继承的规则以及该规则对应的字段属性从第一爬取构架中被删除、或者被继承的规则对应的字段属性从第一爬取构架中被删除、或者整个第一爬取构架被删除时,将被删除的规则和/或字段属性添加至第二爬取构架中,基于添加的规则和/或字段属性和第二爬取构架中原有的规则和/或字段属性共同组成第二爬取构架。例如,当监控到Schema1被删除、或者Schema1中的Property1被删除、或者Rule1被删除时,将被删除的Property1或Rule1添加至Schema2中,使Property1或Rule1转变为属于Schema2的数据。以便在爬取网页时,对应使用的本地配置的规则仍然有效。
212、解除第一爬取构架和第二爬取构架的继承关系。
在第一爬取构架已经被删除、或者第一爬取构架中不存在第二爬取构架需要调用的规则时,解除第一爬取构架和第二爬取构架的继承关系,以便后续使用第二爬取构架爬取网页时,不必再调用第一爬取构架,避免数据调用错误,以及减少不必要的时间消耗。
本发明实施例提供的网页爬取方法,在确定可以继承至少部分规则时,能够根据该继承的部分规则和剩余待创建的规则来创建新的爬取构架;而在确定无法从预先创建的爬取构建中继承规则时,才会根据全部需要的规则来创建爬取构架。并且,为了避免爬取构架中对应同一字段属性的多个规则都和同一域名相匹配,在爬取目标网页时使爬取数据混乱,在利用爬取构架爬取目标网页之前,还会根据预置的匹配条件从中确定用于爬取的规则。并且在监控到第一爬取构架中的规则被删除、和/或第一爬取构架中的规则对应的字段属性被删除、或第一爬取构架被删除时,为了确保配置的规则有效,会将被删除的规则和/或字段属性添加到第二爬取构架中,使被删除的规则和/或字段属性转变为属于本地的数据。并在之后解除继承关系,避免数据调用错误,以及减少不必要的时间消耗。
进一步的,作为对上述实施例方法的实现,本发明再一实施例还提供了一种网页爬取装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
参照附图5所示,网页爬取装置包括获取单元31、确定单元32、判断单元33、继承单元34、创建单元35和爬取单元36。
获取单元31,用于获取目标网页的域名。
确定单元32,用于确定与域名相匹配的规则。
在对目标网页的进行爬取之前,需要获取单元31先获取整个待爬取的网页,将该待爬取的网页保存在本地,并获取该目标网页的域名。然后再通过确定单元32进一步确定与该域名相匹配的规则,以便后续使具有该匹配的规则的爬取构架根据对目标网页进行正确地爬取。
判断单元33,用于判断预先创建的第一爬取构架中是否包含与该域名相匹配的至少部分规则。
为了避免重复创建耗费时间,在确定了目标网页对应的规则后,判断单元33会先在已有的爬取构架中判断是否存在与目标网页的域名相匹配的至少部分规则。
继承单元34,用于当第一爬取构架中包含与域名相匹配的至少部分规则时,从第一爬取构架中继承至少部分规则。
若从已有的第一爬取构架中查找到了与域名相匹配的全部规则或部分规则,继承单元34会则从该第一爬取构架中继承该全部规则或部分规则。
创建单元35,用于根据至少部分规则,创建第二爬取架构。
爬取单元36,用于通过第二爬取构架对目标网页进行爬取。
在从第一爬取构架中确定了与目标网页的域名相匹配的部分或全部规则后,确定可以继承的规则以及待创建规则,然后创建单元35根据该继承的规则和该待创建规则来创建第二爬取构架,不用耗费时间在第二爬取构架中创建全部的规则,以减少创建第二爬取构架耗费的时间。
可选的,创建单元35,还用于当第一爬取构架中未包含与域名相匹配的至少部分规则时,创建具有与域名相匹配的规则的第三爬取构架。
爬取单元36,还用于通过第三爬取架构对目标网页进行爬取。
在无法从预先创建的爬取构建中继承规则时,就需要新创建与域名相匹配的全部规则,然后通过创建单元35根据新创建的规则来创建第三爬取构架。然后在通过爬取单元36通过创建的第三爬取架构对目标网页进行爬取。
可选的,第一爬取构架中包含与域名相匹配的至少部分规则,包括:第一爬取架构中包含与域名相匹配的全部规则;或者,第一爬取架构中包含与域名相匹配的部分规则。
第一爬取构架中未包含与域名相匹配的至少部分规则,包括:第一爬取构架中未包含任何与域名相匹配的规则。
可选的,确定单元32,还用于当第一爬取架构中包含与域名相匹配的部分规则时,根据与域名相匹配的规则,以及与域名相匹配的部分规则,确定待创建规则;
在从其他爬取构架中继承了其中的部分规则后,确定单元32即可根据剩余无法继承的部分规则确定待创建的规则,以便后续根据继承的规则和待创建的规则共同组成爬取目标网页需要的全部规则。
创建单元37,还用于创建待创建规则。
确定待创建规则后,创建单元37即会创建待创建规则。并且,在确定当前继承的字段属性和规则集合中,未包括该待创建规则对应的字段属性和规则集合时,会在创建该待创建规则时,同步创建对应的字段属性和规则集合。
创建单元35,还用于根据创建的待创建规则和与域名相匹配的部分规则,创建第二爬取架构。
在创建了待创建规则后,再控制创建单元35根据创建的待创建规则和与域名相匹配的部分规则,创建第二爬取架构。
可选的,第一爬取架构和第二爬取架构中包括:字段属性,字段属性用于确定爬取架构需要爬取的字段和字段类型,每个规则具有对应的字段属性。
可选的,判断单元33,还用于判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1。
为了避免在同一域名下的网页爬取同一字段时,匹配了多个规则,造成爬取数据混乱,在利用爬取构架爬取目标网页之前,还需要判断单元33进一步判断爬取构架内与目标网页的域名相匹配的规则中,是否包括作用域相同且对应同一字段属性的多个规则。
确定单元32,还用于当判断为是时,根据预置的匹配条件从相匹配的规则中确定用于爬取的规则。
当判断单元33判断一字段属性对应的规则中,与同一域名相匹配的规则的数量大于1时,确定单元32会从对应同一字段属性且具有相同作用域的规则中提取创建时间最近的一个规则,或者从对应同一字段属性且具有相同作用域的多个规则中提取存储在本地的一个规则,确定为用于爬取的规则。
爬取单元35,还用于第二爬取构架或第三爬取架构根据确定的规则对目标网页进行爬取。
在根据继承的规则和待创建规则创建了第二爬取构架,或者根据与域名相匹配的规则创建了第三爬取构架,并且确定了直接使用爬取构架中的规则,或是根据匹配条件从中选择一个用于爬取的规则后,爬取单元35即可通过创建的爬取构架和确定的规则来爬取目标网页。
可选的,参照图6所示,该装置还包括:
添加单元37,用于当监控到第一爬取构架中的规则被删除、和/或第一爬取构架中的规则对应的字段属性被删除、或第一爬取构架被删除时,将规则和/或规则对应的字段属性添加至第二爬取构架中。
当监控到被继承的规则从第一爬取构架中被删除、或者被继承的规则以及该规则对应的字段属性从第一爬取构架中被删除、或者被继承的规则对应的字段属性从第一爬取构架中被删除、或者整个第一爬取构架被删除时,控制添加单元37将被删除的规则和/或字段属性添加至第二爬取构架中,使其转变为属于第二爬取构架的数据,以便在爬取网页时,对应使用的本地配置的规则仍然有效。
解除单元38,用于解除第一爬取构架和第二爬取构架的继承关系。
在第一爬取构架已经被删除、或者第一爬取构架中不存在第二爬取构架需要调用的规则时,控制解除单元38解除第一爬取构架和第二爬取构架的继承关系,以便后续使用第二爬取构架爬取网页时,不必再调用第一爬取构架,避免数据调用错误,以及减少不必要的时间消耗。
本发明实施例提供的网页爬取装置,与现有技术对网页进行爬取时,只能对预先创建的爬取架构进行全部引用,而无法通过预先创建的爬取架构形成一个新的爬取架构以使用,本发明在爬取目标网页时,先通过判断单元33判断预先创建的爬取构架中是否包含与目标网页的域名匹配的规则,确定是否能够直接继承部分规则。在确定后通过继承单元34和创建单元35根据继承的规则创建第二爬取架构,使第二爬取架构中既包含从其他爬取构架继承的规则也包含新创建的规则。第二爬取构架部分继承了先创建的爬取构架中的规则,即减少了创建爬取构架的时间,又使新创建的爬取构架能够满足当前网页的爬取需求。并且,为了避免爬取构架中对应同一字段属性的多个规则都和同一域名相匹配,在爬取目标网页时使爬取数据混乱,在利用爬取构架爬取目标网页之前,判断单元33和确定单元32还会根据预置的匹配条件从中确定用于爬取的规则。而且,在监控到第一爬取构架中的规则被删除、和/或第一爬取构架中的规则对应的字段属性被删除、或第一爬取构架被删除时,为了确保配置的规则有效,添加单元37会将被删除的规则和/或字段属性添加到第二爬取构架中,使被删除的规则和/或字段属性转变为属于本地的数据。并在之后通过解除单元38解除继承关系,避免数据调用错误,以及减少不必要的时间消耗。
所述网页爬取装置包括处理器和存储器,上述确定单元、判断单元、创建单元、继承单元和爬取单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中无法基于预先创建的爬取架构形成一个新的爬取架构对网页进行爬取的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以下网页爬取方法:
获取目标网页的域名,并确定与所述域名相匹配的规则。
判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则。
若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则。
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下网页爬取方法:
获取目标网页的域名,并确定与所述域名相匹配的规则。
判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则。
若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则。
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取目标网页的域名,并确定与所述域名相匹配的规则;
判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则;
若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则;
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。
可选的,还包括:
若所述第一爬取构架中未包含与所述域名相匹配的至少部分规则,则创建具有与所述域名相匹配的规则的第三爬取构架;
通过所述第三爬取架构对所述目标网页进行爬取。
可选的,所述第一爬取构架中包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取架构中包含与所述域名相匹配的全部规则;或者,
所述第一爬取架构中包含与所述域名相匹配的部分规则;
所述第一爬取构架中未包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取构架中未包含任何与所述域名相匹配的规则。
可选的,若所述第一爬取架构中包含与所述域名相匹配的部分规则,还包括:
根据与所述域名相匹配的规则,以及所述与所述域名相匹配的部分规则,确定待创建规则;
创建所述待创建规则;
所述根据所述至少部分规则,创建第二爬取架构,包括:
根据创建的所述待创建规则和所述与所述域名相匹配的部分规则,创建所述第二爬取架构。
可选的,所述第一爬取架构和所述第二爬取架构中包括:字段属性,所述字段属性用于确定爬取架构需要爬取的字段和字段类型,每个规则具有对应的字段属性。
可选的,判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1;
若是,则根据预置的匹配条件从所述相匹配的规则中确定用于爬取的规则;
所述通过所述第二爬取构架或所述第三爬取架构对所述目标网页进行爬取,包括:
所述第二爬取构架或所述第三爬取架构根据所述确定的规则对所述目标网页进行爬取。
可选的,还包括:
当监控到所述第一爬取构架中的所述规则被删除、和/或第一爬取构架中的所述规则对应的字段属性被删除、或所述第一爬取构架被删除时,将所述规则和/或所述规则对应的字段属性添加至所述第二爬取构架中;
解除所述第一爬取构架和所述第二爬取构架的继承关系。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:
获取目标网页的域名,并确定与所述域名相匹配的规则。
判断预先创建的第一爬取构架中是否包含与所述域名相匹配的至少部分规则。
若所述第一爬取构架中包含与所述域名相匹配的至少部分规则,则从所述第一爬取构架中继承所述至少部分规则。
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取构架对所述目标网页进行爬取。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。、
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种网页爬取方法,其特征在于,所述方法包括:
获取目标网页的域名,并确定与所述域名相匹配的规则;
判断预先创建的第一爬取架构中是否包含与所述域名相匹配的至少部分规则;
若所述第一爬取架构中包含与所述域名相匹配的至少部分规则,则从所述第一爬取架构中继承所述至少部分规则;
根据所述至少部分规则,创建第二爬取架构,通过所述第二爬取架构对所述目标网页进行爬取;
所述方法还包括:
若所述第一爬取架构中未包含与所述域名相匹配的至少部分规则,则创建具有与所述域名相匹配的规则的第三爬取架构;
通过所述第三爬取架构对所述目标网页进行爬取。
2.根据权利要求1所述的方法,其特征在于:
所述第一爬取架构中包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取架构中包含与所述域名相匹配的全部规则;或者,
所述第一爬取架构中包含与所述域名相匹配的部分规则;
所述第一爬取架构中未包含与所述域名相匹配的至少部分规则,包括:
所述第一爬取架构中未包含任何与所述域名相匹配的规则。
3.根据权利要求2所述的方法,其特征在于,若所述第一爬取架构中包含与所述域名相匹配的部分规则,所述方法还包括:
根据与所述域名相匹配的规则,以及所述与所述域名相匹配的部分规则,确定待创建规则;
创建所述待创建规则;
所述根据所述至少部分规则,创建第二爬取架构,包括:
根据创建的所述待创建规则和所述与所述域名相匹配的部分规则,创建所述第二爬取架构。
4.根据权利要求1所述的方法,其特征在于,所述第一爬取架构和所述第二爬取架构中包括:字段属性,所述字段属性用于确定爬取架构需要爬取的字段和字段类型,每个规则具有对应的字段属性。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断每个字段属性对应的规则中,与同一域名相匹配的规则的数量是否大于1;
若是,则根据预置的匹配条件从所述相匹配的规则中确定用于爬取的规则;
所述通过所述第二爬取架构或所述第三爬取架构对所述目标网页进行爬取,包括:
所述第二爬取架构或所述第三爬取架构根据所述确定的规则对所述目标网页进行爬取。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当监控到所述第一爬取架构中的所述规则被删除、和/或第一爬取架构中的所述规则对应的字段属性被删除、或所述第一爬取架构被删除时,将所述规则和/或所述规则对应的字段属性添加至所述第二爬取架构中;
解除所述第一爬取架构和所述第二爬取架构的继承关系。
7.一种网页爬取装置,其特征在于,所述装置包括:
获取单元,用于获取目标网页的域名;
确定单元,用于确定与所述域名相匹配的规则;
判断单元,用于判断预先创建的第一爬取架构中是否包含与所述域名相匹配的至少部分规则;
继承单元,用于当所述第一爬取架构中包含与所述域名相匹配的至少部分规则时,从所述第一爬取架构中继承所述至少部分规则;
创建单元,用于根据所述至少部分规则,创建第二爬取架构;
爬取单元,用于通过所述第二爬取架构对所述目标网页进行爬取;
所述装置还包括:
创建单元,还用于当第一爬取架构中未包含与域名相匹配的至少部分规则时,创建具有与域名相匹配的规则的第三爬取架构;
爬取单元,还用于通过第三爬取架构对目标网页进行爬取。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求6任意一项所述的网页爬取方法。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求6任意一项所述的网页爬取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811145540.3A CN110968756B (zh) | 2018-09-29 | 2018-09-29 | 网页爬取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811145540.3A CN110968756B (zh) | 2018-09-29 | 2018-09-29 | 网页爬取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968756A CN110968756A (zh) | 2020-04-07 |
CN110968756B true CN110968756B (zh) | 2023-05-12 |
Family
ID=70027138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811145540.3A Active CN110968756B (zh) | 2018-09-29 | 2018-09-29 | 网页爬取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968756B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045507A (zh) * | 2016-02-05 | 2017-08-15 | 北京国双科技有限公司 | 网页爬取方法及装置 |
CN107885843A (zh) * | 2017-11-10 | 2018-04-06 | 天脉聚源(北京)传媒科技有限公司 | 一种智能爬虫任务的方法及装置 |
CN107943991A (zh) * | 2017-12-01 | 2018-04-20 | 成都嗨翻屋文化传播有限公司 | 一种基于内存数据库的分布式爬虫框架及实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799262B2 (en) * | 2011-04-11 | 2014-08-05 | Vistaprint Schweiz Gmbh | Configurable web crawler |
-
2018
- 2018-09-29 CN CN201811145540.3A patent/CN110968756B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045507A (zh) * | 2016-02-05 | 2017-08-15 | 北京国双科技有限公司 | 网页爬取方法及装置 |
CN107885843A (zh) * | 2017-11-10 | 2018-04-06 | 天脉聚源(北京)传媒科技有限公司 | 一种智能爬虫任务的方法及装置 |
CN107943991A (zh) * | 2017-12-01 | 2018-04-20 | 成都嗨翻屋文化传播有限公司 | 一种基于内存数据库的分布式爬虫框架及实现方法 |
Non-Patent Citations (1)
Title |
---|
基于规则引擎的个性化主题网页爬虫的研究;赵思佳等;《计算机技术与发展》;20110310;第21卷(第03期);第56-63页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110968756A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562467B (zh) | 页面渲染方法、装置及设备 | |
US10152773B2 (en) | Creating a blurred area for an image to reuse for minimizing blur operations | |
US20120311589A1 (en) | Systems and methods for processing hierarchical data in a map-reduce framework | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN110968808B (zh) | 一种实现网页主题更新的方法及装置 | |
US20130091416A1 (en) | Method for establishing a relationship between semantic data and the running of a widget | |
US20140282062A1 (en) | Techniques for efficient and granular composition of a user profile | |
CN110941428B (zh) | 一种网站创建方法和装置 | |
CN101937335A (zh) | 一种生成Widget图标的方法、Widget摘要文件的生成方法及Widget引擎 | |
US10951540B1 (en) | Capture and execution of provider network tasks | |
CN108874379B (zh) | 页面的处理方法及装置 | |
CN109558548B (zh) | 一种消除css样式冗余的方法及相关产品 | |
CN110968756B (zh) | 网页爬取方法及装置 | |
CN111125087B (zh) | 数据的存储方法及装置 | |
CN109542401B (zh) | 一种Web开发方法、装置、存储介质及处理器 | |
CN111078905A (zh) | 一种数据处理方法、装置、介质以及设备 | |
CN113094250B (zh) | 日志预警方法、装置、电子设备及存储介质 | |
CN111651160B (zh) | 插件构建、网页设计的方法和装置 | |
CN110968580B (zh) | 一种数据存储结构的创建方法及装置 | |
Stueben et al. | Defensive programming | |
CN109710833B (zh) | 用于确定内容节点的方法与设备 | |
CN109426540B (zh) | 元素的点击情况检测方法和装置、存储介质、处理器 | |
CN111079392A (zh) | 网页表单自动填写方法、装置、存储介质及电子设备 | |
CN110968758B (zh) | 网页数据的爬取方法及装置 | |
US20210319042A1 (en) | Content source integration |
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 |