基于正则表达式的URL清洗方法及系统与流程

文档序号:17222106发布日期:2019-03-27 12:05阅读:692来源:国知局

本发明涉及网络信息处理技术领域,特别是一种基于正则表达式的url清洗方法及其应用该方法的系统。



背景技术:

url,也被称为网页地址,是internet上标准的资源的地址,用于完整地描述internet上网页和其他资源的地址的一种标识方法。internet上的每一个网页都具有一个唯一的url地址名称标识,通常称之为url地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是internet上的站点。简单地说,url就是web地址,俗称“网址”。

通常爬虫工程师在爬完网站数据之后要对这些数据做清洗操作,其中比较麻烦的就是url的清洗。对于结构完整的url(完整域名和域名后缀),我们可以对它发送请求,获取它的服务器返回的状态码,如果状态码为200则表示请求成功,如果状态码为其它数值则表示请求失败。这种方法能过滤掉大部分url,但是无法过滤掉满足状态码为200但网站内容与网站的公司名称完全不相符的博彩网或h网或其他网站;例如,网站标题包含“婚纱摄影”,但网站内容为“日用品销售”的情况。从而导致清洗效率低,需要耗费大量时间进行人工检查。



技术实现要素:

本发明为解决上述问题,提供了一种基于正则表达式的url清洗方法及系统,通过自然语言处理的方法来识别网站标题,将网站标题与公司名称进行验证匹配,能够极大的提高url的清洗效率。

为实现上述目的,本发明采用的技术方案为:

一种基于正则表达式的url清洗方法,其包括以下步骤:

a.爬取网站的url及其对应的公司名称;

b.对所述公司名称进行分词处理,得到分词结果;

c.构造与所述分词结果相应的正则表达式;

d.访问所述url并提取对应的网站标题;

e.将所述正则表达式与所述网站标题进行匹配,并根据匹配结果对所述url进行清洗。

优选的,所述的步骤a中,是根据爬取主题进行设置对应的爬取关键词,并利用python爬虫进行获取所述爬取关键词相关联的url,并同时爬取所述url对应的公司名称。

优选的,所述的步骤b中,进一步统计所述分词结果的词频;所述的步骤c中,根据所述分词结果的词频进行构造所述分词结果相应的正则表达式。

进一步的,所述的步骤b中,是采用python中的结巴分词工具对所述公司名称进行分词处理,并采用python中的collections包里的counter模块进行统计所述分词结果的词频。

进一步的,所述的步骤c中,是通过对所述分词结果的词频进行从大到小的排序,并对排序在前的预设数量的分词结果进行构造相应的正则表达式;或者,采用阈值法对所述分词结果的词频进行计算,并对词频大于预设阈值的分词结果进行构造相应的正则表达式。

优选的,所述正则表达式的构造,是通过将所述分词结果与特定字符串相组合进行构造正则表达式,所述特定字符串前置于和/或后置于所述分词结果;所述特定字符串包括:通配符、转义字符、特殊意义字符、自定义字符、空白字符、匹配次数字符中的一种以上。

优选的,所述的步骤d中,所述网站标题的提取方法是采用xpath对所述爬取得到网站进行字符串匹配,获取<title></title>标签内容,即为网站标题。

优选的,所述的步骤e中,将所述正则表达式与所述网站标题进行匹配,若匹配成功则返回true,若匹配失败则返回false,并对匹配失败的网站所对应的url进行清洗。

对应的,本发明还提供一种基于正则表达式的url清洗系统,其包括:

数据爬取模块,用于爬取网站的url及其对应的公司名称;

分词处理模块,用于对所述公司名称进行分词处理,得到分词结果;

正则表达式生成模块,用于构造与所述分词结果相应的正则表达式;

网站标题提取模块,其通过访问所述url进行提取对应的网站标题;

url清洗模块,其将所述正则表达式与所述网站标题进行匹配,并根据匹配结果对所述url进行清洗。

本发明的有益效果是:

(1)本发明通过结合网站的公司名称和网站标题,利用自然语言处理的方法进行过滤和清洗网站的url,从而极大的提高了url清洗效率,节省大量的人工检查时间;

(2)本发明通过识别网站标题来判断网站内容,无需对网站的全文进行分析,极大的提高了计算效率;

(3)本发明通过正则表达式将网站标题与公司名称进行匹配,提高了验证url所对应网站内容的准确程度。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合具体实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

一种基于正则表达式的url清洗方法,其包括以下步骤:

a.爬取网站的url及其对应的公司名称;

b.对所述公司名称进行分词处理,得到分词结果;

c.构造与所述分词结果相应的正则表达式;

d.访问所述url并提取对应的网站标题;

e.将所述正则表达式与所述网站标题进行匹配,并根据匹配结果对所述url进行清洗。

所述的步骤a中,是根据爬取主题进行设置对应的爬取关键词,并利用python爬虫进行获取所述爬取关键词相关联的url,并同时爬取所述url对应的公司名称。本实施例通过爬取主题来设置爬取关键词,进而根据爬取关键词进行爬取关联的url,适用于对某一领域或某一行业或某一主题的专项分析,使得爬取的数据更具有针对性,分析结果更准确。

所述的步骤b中,进一步统计所述分词结果的词频;本实施例中,是采用python中的结巴分词工具对所述公司名称进行分词处理。举例如下:

表1-分词处理

本实施例中,进一步采用python中的collections包里的counter模块进行统计所述分词结果的词频。举例如下:

表2-词频统计

所述的步骤c中,根据所述分词结果的词频进行构造所述分词结果相应的正则表达式。本实施例中,是通过对所述分词结果的词频进行从大到小的排序,并对排序在前的预设数量的分词结果进行构造相应的正则表达式;或者,采用阈值法对所述分词结果的词频进行计算,并对词频大于预设阈值的分词结果进行构造相应的正则表达式。举例如下:

表3-构造正则表达式

其中,所述正则表达式的构造,是通过将所述分词结果与特定字符串相组合进行构造正则表达式,所述特定字符串前置于和/或后置于所述分词结果;所述特定字符串包括:通配符、转义字符、特殊意义字符、自定义字符、空白字符、匹配次数字符中的一种以上。常用的字符举例如下:

表4-正则表达式的常用字符

所述的步骤d中,所述网站标题的提取方法是采用xpath对所述爬取得到网站进行字符串匹配,获取<title></title>标签内容,即为网站标题。

所述的步骤e中,将所述正则表达式与所述网站标题进行匹配,若匹配成功则返回true,若匹配失败则返回false,并对匹配失败的网站所对应的url进行清洗。

与所述清洗方法相对应的,本发明还提供一种基于正则表达式的url清洗系统,其包括:

数据爬取模块,用于爬取网站的url及其对应的公司名称;

分词处理模块,用于对所述公司名称进行分词处理,得到分词结果;

正则表达式生成模块,用于构造与所述分词结果相应的正则表达式;

网站标题提取模块,其通过访问所述url进行提取对应的网站标题;

url清洗模块,其将所述正则表达式与所述网站标题进行匹配,并根据匹配结果对所述url进行清洗。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

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