参会公司网站详情页信息提取方法、装置、设备及介质与流程

文档序号:22125218发布日期:2020-09-04 17:11阅读:284来源:国知局
参会公司网站详情页信息提取方法、装置、设备及介质与流程

本发明涉及文本提取技术领域,具体涉及一种参会公司网站详情页信息提取方法、装置、设备及介质。



背景技术:

为增加曝光度和知名度,企业会选择参加一些展会以向大众展示公司品牌及产品,而作为主办方,展会网站会提前在其官网公布参会企业信息,这些信息是面向大众的公共信息,即使在展会结束后依然会在其官网保留。

因信息属大众化的公共信息,研究人员会提取上述公共信息进行研究或数据挖掘分析,在抓取过程中,现有技术使用最多的就是人工匹配节点进行网页解析,或者使用“傻瓜式”可视化爬虫进行网页解析,对不同的网站都需要人工输入不同的节点路径,且对不熟悉的外文网页时还需工程师查词典以得到所需信息的位置,提取页面信息效率低且不准确,无法灵活和准确的进行页面信息提取。



技术实现要素:

鉴于以上内容,有必要提出一种参会公司网站详情页信息提取方法、装置、设备及介质,通过多个预设规则特别是节点文本密度算法得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

本发明的第一方面提供一种参会公司网站详情页信息提取方法,节点文本密度算法包括:

获取参会公司网站的html代码,并将所述html代码解析为节点dom树;

计算所述节点dom树中每个节点的文本长度;

累加所述节点dom树中的所有节点的文本长度得到总长度;

根据所述总长度计算每个节点的文本长度的占比;

将小于或者等于预设第一占比阈值的占比更新为零,并根据更新后的占比得到文本长度占比集;

由零元素将所述文本长度占比集分割为多个子集,其中,每个子集中包含多个连续的非零占比;

根据所述每个子集中的非零占比计算每个子集的占比和;

获取所述占比和中大于或者等于预设第二占比阈值对应的目标子集,并获取所述目标子集中所有非零占比对应的目标节点的path路径和class属性;

计算每个path路径和class属性的数量,并将path路径数量最多的path路径作为所述参会公司的目标path路径,将class属性数量最多的class属性作为所述参会公司的目标class属性;

根据所述目标path路径和所述目标class属性解析出所述参会公司的详情页信息。

本发明的第二方面提供一种参会公司网站详情页信息提取方法,所述方法包括:

获取多个参会公司网站的详情页链接集合,并根据所述详情页链接集合中的每个链接下载源代码;

获取每个所述源代码中的html代码,并将所述html代码解析为第一节点dom树;

根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树;

根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性;

根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息。

优选的,所述根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性包括:

根据预设公司名称后缀集提取每个第二节点dom树的主体部分中的公司名称节点的path路径和class属性;

根据预设邮箱地址规则提取每个第二节点dom树的主体部分中的邮箱地址节点的path路径和class属性;

根据预设电话号码规则提取每个第二节点dom树的主体部分中的电话号码节点的path路径和class属性;

根据多语言地址识别算法提取每个第二节点dom树的主体部分中的公司地址节点的path路径和class属性;

根据节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性,其中,根据所述节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性。

优选的,所述根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息包括:

判断所述每个第二节点dom树的主体部分中的每个目标节点是否包含class属性;

当目标节点包含class属性时,使用所述目标节点的class属性解析出所述参会公司的详情页信息;

当目标节点不包含class属性时,使用所述目标节点的path路径解析出所述参会公司的详情页信息。

优选的,所述根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树包括:

针对每个参会公司,将所述参会公司的第一节点dom树作为目标第一节点dom树,将其他任意一个参会公司的第一节点dom树作为候选第一节点dom树;

从所述目标第一节点dom树的头部开始依次获取每个第一节点,从每个候选第一节点dom树中获取与所述第一节点相同的第二节点,将所述第一节点的信息与所述第二节点的信息进行匹配,直至所述第一节点的信息与所述第二节点的信息不匹配时,将所述第一节点记录为起始下标;

从所述目标第一节点dom树的尾部开始依次获取每个第三节点,从每个候选第一节点dom树中获取与所述第三节点相同的第四节点,将所述第三节点的信息与所述第四节点的信息进行匹配,直至所述第三节点的信息与所述第四节点的信息不匹配时,将所述第三节点记录为结束下标;

获取每个起始下标和每个结束下标的记录次数;

根据所述记录次数确定所述参会公司的第二节点dom树。

优选的,所述根据所述记录次数确定所述参会公司的第二节点dom树包括:

将记录次数最多的起始下标作为目标起始下标,及将记录次数最多的结束下标作为目标结束下标;

从所述目标第一节点dom树的中截取所述目标起始下标至所述目标结束下标的主体部分确定为所述参会公司的第二节点dom树。

优选的,所述参会公司网站详情页信息提取方法还包括:

当获取的参会公司网站的详情页的个数大于预设训练样本数量时,从所述获取的参会公司网站的详情页的个数中随机挑选n个参会公司网站的详情页进行训练。

本发明的第三方面提供一种参会公司网站详情页信息提取装置,所述装置包括:

获取模块,用于获取多个参会公司网站的详情页链接集合,并根据所述详情页链接集合中的每个链接下载源代码;

第一解析模块,用于获取每个所述源代码中的html代码,并将所述html代码解析为第一节点dom树;

第一提取模块,用于根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树;

第二提取模块,用于根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性;

第二解析模块,用于根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息。

本发明的第四方面提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述参会公司网站详情页信息提取方法。

本发明的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述参会公司网站详情页信息提取方法。

综上所述,本发明所述的一种参会公司网站详情页信息提取方法、装置、设备及介质,一方面通过使用双端判重法进行参会公司网站的主体部分的提取,删除页面中不需要的部分,提高了页面提取的效率,另一方面通过多个预设规则得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

附图说明

图1是本发明实施例一提供的参会公司网站详情页信息提取方法的流程图。

图2是本发明实施例二提供的参会公司网站详情页信息提取装置的结构图。

图3是本发明实施例三提供的电子设备的结构示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

图1是本发明实施例一提供的参会公司网站详情页信息提取方法的流程图。

在本实施例中,所述参会公司网站详情页信息提取方法可以应用于电子设备中,对于需要进行参会公司网站详情页信息提取的电子设备,可以直接在电子设备上集成本发明的方法所提供的参会公司网站详情页信息提取的功能,或者以软件开发工具包(softwaredevelopmentkit,skd)的形式运行在电子设备中。

如图1所示,所述一种参会公司网站详情页信息提取方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。

s11:获取多个参会公司网站的详情页链接集合,并根据所述详情页链接集合中的每个链接下载源代码。

本实施例中,从不同的网站中获取多个参会公司的链接,例如从展会的网站上获取所有参会公司的各种信息,从所述展会网站上获取所有参会公司的链接并根据所述链接下载每个参会公司网站的源代码。

s12:获取每个所述源代码中的html代码,并将所述html代码解析为第一节点dom树。

本实施例中,从每个参会公司的源代码中删除javascript及css代码,保留html代码,采用html解析器将每个参会公司对应的html代码解析为第一节点dom树。

s13:根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树。

本实施例中,所述主体部分是指每个参会公司的中间的文本部分,不包括导航条部分的文本信息,使用双端判重法得到每个参会公司的第二节点dom树。

优选的,所述根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树包括:

针对每个参会公司,将所述参会公司的第一节点dom树作为目标第一节点dom树,将其他任意一个参会公司的第一节点dom树作为候选第一节点dom树;

从所述目标第一节点dom树的头部开始依次获取每个第一节点,从每个候选第一节点dom树中获取与所述第一节点相同的第二节点,将所述第一节点的信息与所述第二节点的信息进行匹配,直至所述第一节点的信息与所述第二节点的信息不匹配时,将所述第一节点记录为起始下标;

从所述目标第一节点dom树的尾部开始依次获取每个第三节点,从每个候选第一节点dom树中获取与所述第三节点相同的第四节点,将所述第三节点的信息与所述第四节点的信息进行匹配,直至所述第三节点的信息与所述第四节点的信息不匹配时,将所述第三节点记录为结束下标;

获取每个起始下标和每个结束下标的记录次数;

根据所述记录次数确定所述参会公司的第二节点dom树。

进一步的,所述根据所述记录次数确定所述参会公司的第二节点dom树包括:

将记录次数最多的起始下标作为目标起始下标,及将记录次数最多的结束下标作为目标结束下标;

从所述目标第一节点dom树的中截取所述目标起始下标至所述目标结束下标的主体部分确定为所述参会公司的第二节点dom树。

示例性的,参会公司为四个,解析得到四个第一节点dom树:html0、html2、html3及html4,确定目标第一节点dom树为html0,候选第一节点dom树为html2、html3及html4,其中,所述html0中包括第一节点的信息:html0=[a1,a2,a3,a4],所述html2包括第二节点的信息:html2=[b1,b2,b3,b4],所述html3包括第二节点的信息:html3=[c1、c2,c3,c4],所述html4包括第二节点的信息:html4=[d1,d2,d3,d4]。

从所述html0的头部开始依次获取每个第一节点,选取任意候选第一节点dom树html2,将所述a1和b1进行文本匹配,若a1和b1完全匹配,将所述a2和b2进行文本匹配,若所述a2和b2不匹配,记录2为一个起始下标;然后将所述a4和b4进行文本匹配,若a4和b4完全匹配,将所述a3和b3进行文本匹配,若所述a3和b3不匹配,记录3为一个结束下标;选取任意候选第一节点dom树html3,将所述a1和c1进行文本匹配,所述a1和c1不匹配,记录1为一个起始下标,将所述a4和c4进行文本匹配,若a4和c4完全匹配,将所述a3和c3进行文本匹配,若所述a3和b3不匹配,记录3为一个结束下标;选取任意剩余第一节点dom树为html4,将所述a1和d1进行文本匹配,所述a1和d1不匹配,记录1为一个起始下标,将所述a4和d4进行文本匹配,若d4和d4完全匹配,将所述a3和d3进行文本匹配,若所述a3和d3不匹配,记录3为一个结束下标。

计算起始下标1记录的次数为2次,计算起始下标2记录的次数为1次,计算结束下标3记录的次数为3次,则所述目标第一节点dom树的主体部分为[a1,a2,a3],将所述[a1,a2,a3]作为第二节点dom树。

本实施例中,通过使用双端判重法进行参会公司网站的主体部分的提取,删除页面中不需要的部分,提高了参会公司的详情页信息提取的效率。

s14:根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性。

本实施例中,所述多个预设规则包括:公司名称节点规则、邮箱地址节点规则、电话号码节点规则、公司地址节点规则及公司详情页节点规则等其他规则,所述其他规则可以为任意结构化文本信息对应的节点,本发明在此不做限制。

优选的,所述根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性包括:

根据预设公司名称后缀集提取每个第二节点dom树的主体部分中的公司名称节点的path路径和class属性;

根据预设邮箱地址规则提取每个第二节点dom树的主体部分中的邮箱地址节点的path路径和class属性;

根据预设电话号码规则提取每个第二节点dom树的主体部分中的电话号码节点的path路径和class属性;

根据多语言地址识别算法提取每个第二节点dom树的主体部分中的公司地址节点的path路径和class属性;

根据节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性,其中,根据所述节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性。

进一步的,所述根据预设公司名称后缀集提取每个第二节点dom树的主体部分中的公司名称节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

利用正则匹配判断所述每个节点的文本信息中是否包含有预设公司名称后缀集中的任意公司名称后缀;

当确定任意节点的文本信息中包含有所述预设公司名称后缀集中的任意公司名称后缀时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的公司名称节点的class属性。

本实施例中,所述预设公司名称后缀集为各国语言驱动下的常用公司后缀集合,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设公司名称后缀集中,若任意节点的文本信息匹配到所述预设公司名称后缀集中的任意公司名称后缀集,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的公司名称节点的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设公司名称后缀集,将记录次数最多的path路径及class属性,提高了页面信息的公司名称提取的准确率。

进一步的,所述根据预设邮箱地址规则提取每个第二节点dom树的主体部分中的邮箱地址节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

利用正则匹配判断所述每个节点的文本信息中是否包含有预设邮箱地址规则集中的任意邮箱地址规则;

当确定任意节点的文本信息中包含有所述预设邮箱地址规则集中的任意邮箱地址规则时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的邮箱地址节点的path路径,及将记录次数最多的class属性作为所述每个参会公司的邮箱地址节点的class属性。

本实施例中,所述预设邮箱地址规则为全球统一邮箱格式规则集,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设邮箱地址规则集中,若任意节点的文本信息匹配到所述预设公司名称后缀集中的任意邮箱格式规则时,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的邮箱地址的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设邮箱地址规则集,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的邮箱地址提取的准确率。

进一步的,所述根据预设电话号码规则提取每个第二节点dom树的主体部分中的电话号码节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

当任意节点的文本信息使用多语言地址识别算法解析得到地址信息时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的电话号码节点的path路径及将记录次数最多的class属性作为所述每个参会公司的电话号码节点的class属性。

本实施例中,所述预设电话号码规则为各个国家设定的电话号码格式规则集,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设电话号码规则集中,若任意节点的文本信息匹配到所述预设电话号码规则集中的任意电话号码规则时,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的电话号码节点的path路径及将记录次数最多的class属性作为所述每个参会公司的电话号码的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设电话号码规则集,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的电话号码提取的准确率。

进一步的,所述根据多语言地址识别算法提取每个第二节点dom树的主体部分中的公司地址节点的path路径和class属性包括:

获取所述第二节点dom树中的每个节点的节点信息;

当任意节点的节点信息使用多语言地址识别算法解析得到地址信息时,记录所述任意节点对应的path路径和class属性;计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述参会公司的地址信息节点的path路径及将记录次数最多的class属性作为所述参会公司的地址信息节点的class属性。

本实施例中,所述libpostal算法为多语言地址识别算法,通过对任意节点的节点信息使用libpostal算法解析得到地址信息时,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的地址信息提取的准确率。

其中,所述节点文本密度算法包括:

获取参会公司网站的html代码,并将所述html代码解析为节点dom树;

计算所述节点dom树中每个节点的文本长度;

累加所述节点dom树中的所有节点的文本长度得到总长度;

根据所述总长度计算每个节点的文本长度的占比;

将小于或者等于预设第一占比阈值的占比更新为零,并根据更新后的占比得到文本长度占比集;

由零元素将所述文本长度占比集分割为多个子集,其中,每个子集中包含多个连续的非零占比;

根据所述每个子集中的非零占比计算每个子集的占比和;

获取所述占比和中大于或者等于预设第二占比阈值对应的目标子集,并获取所述目标子集中所有非零占比对应的目标节点的path路径和class属性;

计算每个path路径和class属性的数量,并将path路径数量最多的path路径作为所述参会公司的目标path路径,将class属性数量最多的class属性作为所述参会公司的目标class属性;

根据所述目标path路径和所述目标class属性解析出所述参会公司的详情页信息。

本实施例中,所述节点dom树是获取每个参会公司网站的html代码,并将所述html代码解析为第一节点dom树,提取所述第一节点dom树中的主体部分得到第二节点dom树,将所述第二节点dom树作为节点dom树。

示例性的,若提取的第二节点dom树为[f1,f2,f3,f4,f5,f6,f7,f8],计算f1文本长度为l1,计算f2文本长度为l2,计算f3文本长度为l3,计算f4文本长度为l4,计算f5文本长度为l5,计算f6文本长度为l6,计算f7文本长度为l7,计算f8文本长度为l8;累加所有节点的文本长度得到总长度l=l1+l2+l3+l3+l4+l5+l6+l7+l8;计算每个节点的单节点文本占比:节点f1的单节点文本占比为节点f2的单节点文本占比为节点f3的单节点文本占比为节点f4的单节点文本占比为计节点f5的单节点文本占比为节点f6的单节点文本占比为节点f7的单节点文本占比为节点f8的单节点文本占比为预设的单节点文本占比阈值为δ,将所述每个节点的单节点文本占比与所述δ进行比对,其中,p2和p6对应的单节点文本占比小于等于δ,将p2和p6重新赋值为零,利用零元素将所述重新赋值后的第二节点dom树为[f1,f2,f3,f4,f5,f6,f7,f8]切割为两个子集,第一子集:[f3,f4,f5],第二子集:[f7,f8],累加所述每个子集中的每个节点的单节点文本占比得到第一子集的节点区域块文本占比setpro1=p3+p4+p5,第二子集的节点区域块文本占比setpro2=p7+p8,其中,setpro1大于预设的节点区域块文本占比阈值,记录所述第一子集中的f3,f4,f5对应的path路径和class属性。

本实施例中,通过节点文本密度算法重新赋值第二节点dom树的单节点文本占比,将节点信息不存在的节点进行删除,保留连续不为零的节点作为一个子集,并记录子集中记录次数最多的节点的path路径和class属性作为参会公司详情页节点对应的path路径和class属性,提高了参会公司网站详情页信息中的公司详情页提取的准确率和提取效率。

本实施例中,通过多个预设规则得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

s15:根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息。

本实施例中,通过不同目标节点的path路径和class属性解析所述每个参会公司网站的第二节点dom树,进而得到所述每个参会公司网站信息。

优选的,所述根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息包括:

判断所述每个第二节点dom树的主体部分中的每个目标节点是否包含class属性;

当目标节点包含class属性时,使用所述目标节点的class属性解析出所述参会公司的详情页信息;

当目标节点不包含class属性时,使用所述目标节点的path路径解析出所述参会公司的详情页信息。

本实施例中,优先使用每个参会公司网站的多个目标节点中的class属性进行解析第二节点dom树,进而得到所述每个参会公司网站信息,提高了得到所述每个参会公司的详情页信息的效率。

综上所述,本实施例所述的一种参会公司网站详情页信息提取方法,一方面通过使用双端判重法进行参会公司网站的主体部分的提取,删除页面中不需要的部分,提高了页面提取的效率,另一方面通过多个预设规则得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

实施例二

图2是本发明实施例二提供的参会公司网站详情页信息提取装置的结构图。

在一些实施例中,所述参会公司网站详情页信息提取装置20可以包括多个由程序代码段所组成的功能模块。所述参会公司网站详情页信息提取装置20中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)对网站的公司页面信息的提取。

本实施例中,所述参会公司网站详情页信息提取装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块201、第一解析模块202、第一提取模块203、第二提取模块204及第二解析模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

获取模块201:用于获取多个参会公司网站的详情页链接集合,并根据所述详情页链接集合中的每个链接下载源代码。

本实施例中,从不同的网站中获取多个参会公司的链接,例如从展会的网站上获取所有参会公司的各种信息,从所述展会网站上获取所有参会公司的链接并根据所述链接下载每个参会公司网站的源代码。

第一解析模块202:用于获取每个所述源代码中的html代码,并将所述html代码解析为第一节点dom树。

本实施例中,从每个参会公司的源代码中删除javascript及css代码,保留html代码,采用html解析器将每个参会公司对应的html代码解析为第一节点dom树。

第一提取模块203:用于根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树。

本实施例中,所述主体部分是指每个参会公司的中间的文本部分,不包括导航条部分的文本信息,使用双端判重法得到每个参会公司的第二节点dom树。

优选的,所述第一提取模块203根据所述多个参会公司的第一节点dom树使用双端判重法提取每个所述第一节点dom树的主体部分,得到每个参会公司的第二节点dom树包括:

针对每个参会公司,将所述参会公司的第一节点dom树作为目标第一节点dom树,将其他任意一个参会公司的第一节点dom树作为候选第一节点dom树;

从所述目标第一节点dom树的头部开始依次获取每个第一节点,从每个候选第一节点dom树中获取与所述第一节点相同的第二节点,将所述第一节点的信息与所述第二节点的信息进行匹配,直至所述第一节点的信息与所述第二节点的信息不匹配时,将所述第一节点记录为起始下标;

从所述目标第一节点dom树的尾部开始依次获取每个第三节点,从每个候选第一节点dom树中获取与所述第三节点相同的第四节点,将所述第三节点的信息与所述第四节点的信息进行匹配,直至所述第三节点的信息与所述第四节点的信息不匹配时,将所述第三节点记录为结束下标;

获取每个起始下标和每个结束下标的记录次数;

根据所述记录次数确定所述参会公司的第二节点dom树。

进一步的,所述根据所述记录次数确定所述参会公司的第二节点dom树包括:

将记录次数最多的起始下标作为目标起始下标,及将记录次数最多的结束下标作为目标结束下标;

从所述目标第一节点dom树的中截取所述目标起始下标至所述目标结束下标的主体部分确定为所述参会公司的第二节点dom树。

示例性的,参会公司为四个,解析得到四个第一节点dom树:html0、html2、html3及html4,确定目标第一节点dom树为html0,候选第一节点dom树为html2、html3及html4,其中,所述html0中包括第一节点的信息:html0=[a1,a2,a3,a4],所述html2包括第二节点的信息:html2=[b1,b2,b3,b4],所述html3包括第二节点的信息:html3=[c1、c2,c3,c4],所述html4包括第二节点的信息:html4=[d1,d2,d3,d4]。

从所述html0的头部开始依次获取每个第一节点,选取任意候选第一节点dom树html2,将所述a1和b1进行文本匹配,若a1和b1完全匹配,将所述a2和b2进行文本匹配,若所述a2和b2不匹配,记录2为一个起始下标;然后将所述a4和b4进行文本匹配,若a4和b4完全匹配,将所述a3和b3进行文本匹配,若所述a3和b3不匹配,记录3为一个结束下标;选取任意候选第一节点dom树html3,将所述a1和c1进行文本匹配,所述a1和c1不匹配,记录1为一个起始下标,将所述a4和c4进行文本匹配,若a4和c4完全匹配,将所述a3和c3进行文本匹配,若所述a3和b3不匹配,记录3为一个结束下标;选取任意剩余第一节点dom树为html4,将所述a1和d1进行文本匹配,所述a1和d1不匹配,记录1为一个起始下标,将所述a4和d4进行文本匹配,若d4和d4完全匹配,将所述a3和d3进行文本匹配,若所述a3和d3不匹配,记录3为一个结束下标。

计算起始下标1记录的次数为2次,计算起始下标2记录的次数为1次,计算结束下标3记录的次数为3次,则所述目标第一节点dom树的主体部分为[a1,a2,a3],将所述[a1,a2,a3]作为第二节点dom树。

本实施例中,通过使用双端判重法进行参会公司网站的主体部分的提取,删除页面中不需要的部分,提高了页面提取的效率。

第二提取模块204:用于根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性。

本实施例中,所述多个预设规则包括:公司名称节点规则、邮箱地址节点规则、电话号码节点规则、公司地址节点规则及公司详情页节点规则等其他规则,所述其他规则可以为任意结构化文本信息对应的节点,本发明在此不做限制。

优选的,所述第二提取模块204根据多个预设规则提取每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性包括:

根据预设公司名称后缀集提取每个第二节点dom树的主体部分中的公司名称节点的path路径和class属性;

根据预设邮箱地址规则提取每个第二节点dom树的主体部分中的邮箱地址节点的path路径和class属性;

根据预设电话号码规则提取每个第二节点dom树的主体部分中的电话号码节点的path路径和class属性;

根据多语言地址识别算法提取每个第二节点dom树的主体部分中的公司地址节点的path路径和class属性;

根据节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性,其中,根据所述节点文本密度算法提取每个第二节点dom树的主体部分中的公司简介节点的path路径和class属性。

进一步的,所述根据预设公司名称后缀集提取每个第二节点dom树的主体部分中的公司名称节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

利用正则匹配判断所述每个节点的文本信息中是否包含有预设公司名称后缀集中的任意公司名称后缀;

当确定任意节点的文本信息中包含有所述预设公司名称后缀集中的任意公司名称后缀时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的公司名称节点的class属性。

本实施例中,所述预设公司名称后缀集为各国语言驱动下的常用公司后缀集合,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设公司名称后缀集中,若任意节点的文本信息匹配到所述预设公司名称后缀集中的任意公司名称后缀集,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的公司名称节点的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设公司名称后缀集,将记录次数最多的path路径及class属性,提高了页面信息的公司名称提取的准确率。

进一步的,所述根据预设邮箱地址规则提取每个第二节点dom树的主体部分中的邮箱地址节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

利用正则匹配判断所述每个节点的文本信息中是否包含有预设邮箱地址规则集中的任意邮箱地址规则;

当确定任意节点的文本信息中包含有所述预设邮箱地址规则集中的任意邮箱地址规则时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的邮箱地址节点的path路径,及将记录次数最多的class属性作为所述每个参会公司的邮箱地址节点的class属性。

本实施例中,所述预设邮箱地址规则为全球统一邮箱格式规则集,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设邮箱地址规则集中,若任意节点的文本信息匹配到所述预设公司名称后缀集中的任意邮箱格式规则时,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的公司名称节点的path路径及将记录次数最多的class属性作为所述每个参会公司的邮箱地址的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设邮箱地址规则集,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的邮箱地址提取的准确率。

进一步的,所述根据预设电话号码规则提取每个第二节点dom树的主体部分中的电话号码节点的path路径和class属性包括:

提取每个参会公司的第二节点dom树中的每个节点的节点信息中的文本信息;

当任意节点的文本信息使用多语言地址识别算法解析得到地址信息时,记录所述任意节点对应的path路径和class属性;

计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述每个参会公司的电话号码节点的path路径及将记录次数最多的class属性作为所述每个参会公司的电话号码节点的class属性。

本实施例中,所述预设电话号码规则为各个国家设定的电话号码格式规则集,将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设电话号码规则集中,若任意节点的文本信息匹配到所述预设电话号码规则集中的任意电话号码规则时,记录所述任意节点的path路径和class属性,对每个节点的文本信息都采用正则匹配,将记录次数最多的path路径作为所述每个参会公司的电话号码节点的path路径及将记录次数最多的class属性作为所述每个参会公司的电话号码的class属性。

本实施例中,通过将所述第二节点dom树中的每个节点的文本信息正则匹配至所述预设电话号码规则集,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的电话号码提取的准确率。

进一步的,所述根据多语言地址识别算法提取每个第二节点dom树的主体部分中的公司地址节点的path路径和class属性包括:

获取所述第二节点dom树中的每个节点的节点信息;

当任意节点的节点信息使用多语言地址识别算法解析得到地址信息时,记录所述任意节点对应的path路径和class属性;计算每个path路径和class属性的记录次数;

将记录次数最多的path路径作为所述参会公司的地址信息节点的path路径及将记录次数最多的class属性作为所述参会公司的地址信息节点的class属性。

本实施例中,所述libpostal算法为多语言地址识别算法,通过对任意节点的节点信息使用libpostal算法解析得到地址信息时,将记录次数最多的path路径及class属性,提高了参会公司网站详情页信息中的地址信息提取的准确率。

其中,所述节点文本密度算法包括:

获取参会公司网站的html代码,并将所述html代码解析为节点dom树;

计算所述节点dom树中每个节点的文本长度;

累加所述节点dom树中的所有节点的文本长度得到总长度;

根据所述总长度计算每个节点的文本长度的占比;

将小于或者等于预设第一占比阈值的占比更新为零,并根据更新后的占比得到文本长度占比集;

由零元素将所述文本长度占比集分割为多个子集,其中,每个子集中包含多个连续的非零占比;

根据所述每个子集中的非零占比计算每个子集的占比和;

获取所述占比和中大于或者等于预设第二占比阈值对应的目标子集,并获取所述目标子集中所有非零占比对应的目标节点的path路径和class属性;

计算每个path路径和class属性的数量,并将path路径数量最多的path路径作为所述参会公司的目标path路径,将class属性数量最多的class属性作为所述参会公司的目标class属性;

根据所述目标path路径和所述目标class属性解析出所述参会公司的详情页信息。

本实施例中,所述节点dom树是获取每个参会公司网站的html代码,并将所述html代码解析为第一节点dom树,提取所述第一节点dom树中的主体部分得到第二节点dom树,将所述第二节点dom树作为节点dom树。

示例性的,若提取的第二节点dom树为[f1,f2,f3,f4,f5,f6,f7,f8],计算f1文本长度为l1,计算f2文本长度为l2,计算f3文本长度为l3,计算f4文本长度为l4,计算f5文本长度为l5,计算f6文本长度为l6,计算f7文本长度为l7,计算f8文本长度为l8;累加所有节点的文本长度得到总长度l=l1+l2+l3+l3+l4+l5+l6+l7+l8;计算每个节点的单节点文本占比:节点f1的单节点文本占比为节点f2的单节点文本占比为节点f3的单节点文本占比为节点f4的单节点文本占比为计节点f5的单节点文本占比为节点f6的单节点文本占比为节点f7的单节点文本占比为节点f8的单节点文本占比为预设的单节点文本占比阈值为δ,将所述每个节点的单节点文本占比与所述δ进行比对,其中,p2和p6对应的单节点文本占比小于等于δ,将p2和p6重新赋值为零,利用零元素将所述重新赋值后的第二节点dom树为[f1,f2,f3,f4,f5,f6,f7,f8]切割为两个子集,第一子集:[f3,f4,f5],第二子集:[f7,f8],累加所述每个子集中的每个节点的单节点文本占比得到第一子集的节点区域块文本占比setpro1=p3+p4+p5,第二子集的节点区域块文本占比setpro2=p7+p8,其中,setpro1大于预设的节点区域块文本占比阈值,记录所述第一子集中的f3,f4,f5对应的path路径和class属性。

本实施例中,通过节点文本密度算法重新赋值第二节点dom树的单节点文本占比,将节点信息不存在的节点进行删除,保留连续不为零的节点作为一个子集,并记录子集中记录次数最多的节点的path路径和class属性作为参会公司详情页节点对应的path路径和class属性,提高了参会公司网站详情页信息中的公司详情页提取的准确率和提取效率。

本实施例中,通过多个预设规则得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

第二解析模块205:用于根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息。

本实施例中,通过不同目标节点的path路径和class属性解析所述每个参会公司网站的第二节点dom树,进而得到所述每个参会公司网站信息。

优选的,所述第二解析模块205根据所述每个第二节点dom树的主体部分中的多个目标节点的path路径和class属性解析出每个参会公司的详情页信息包括:

判断所述每个第二节点dom树的主体部分中的每个目标节点是否包含class属性;

当目标节点包含class属性时,使用所述目标节点的class属性解析出所述参会公司的详情页信息;

当目标节点不包含class属性时,使用所述目标节点的path路径解析出所述参会公司的详情页信息。

本实施例中,优先使用每个参会公司网站的多个目标节点中的class属性进行解析第二节点dom树,进而得到所述每个参会公司网站信息,提高了得到所述每个参会公司的详情页信息的效率。

综上所述,本实施例所述的一种参会公司网站详情页信息提取装置,一方面通过使用双端判重法进行参会公司网站的主体部分的提取,删除页面中不需要的部分,提高了页面提取的效率,另一方面通过多个预设规则得到解析出每个参会公司的详情页信息,提高了提取详情页信息的效率及正确性,增加了对网站结构化信息提取的智能性及灵活性。

实施例三

参阅图3所示,为本发明实施例三提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。

本领域技术人员应该了解,图3示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述电子设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述电子设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述电子设备3中的参会公司网站详情页信息提取装置20,并在电子设备3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述电子设备3的控制核心(controlunit),利用各种接口和线路连接整个电子设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。

尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述电子设备3的操作装置以及安装的各类应用程序(如所述的参会公司网站详情页信息提取装置20)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到参会公司网站详情页信息提取的目的。

在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现参会公司网站详情页信息提取功能。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1