基于正则表达式的url过滤方法

文档序号:9547258阅读:2122来源:国知局
基于正则表达式的url过滤方法
【技术领域】:
[0001] 本发明涉及网络信息处理技术领域,具体地说是一种利用爬虫程序通过用户自定 义网络爬虫抓取获得网络抓取方案的方法。
【背景技术】:
[0002] 随着互联网技术的发展,搜索引擎已经成为人们获取信息的重要方式。现有的搜 索引擎都是基于通称为网络爬虫(Crawler)的技术实现。网络爬虫抓取时,难以删选自己 想要的有价值的信息,抓取的网页内有镀铬URL链接,如果通过网页源代码来判断该链接 是否是目录页或详细页比较困难。爬虫工作原理是搜索引擎定期执行网络爬虫程序,从作 为搜索树根的指定初始URL列表开始访问这些URL定位的网页资源,获取网页信息,包括标 题、描述HTML网页文档属性的Meta标签等,并从这些信息中提取关键词,添加到搜索时用 的数据库中,以及从这些信息中提取指向网页资源的URL并将这些新提取的URL作为起点 开始新一轮的访问处理,通过这种访问处理的循环得到一个定期更新的综合性的搜索数据 库,当用户向搜索引擎提供关键字后,搜索引擎通过检索搜索数据库,按排名规则向用户返 回搜索成果,完成一次搜索过程。
[0003] 目前网络爬虫程序大都基于页面结构实现数据的获取,通过获取网页文档,将网 页文档解析成DOM树形式,根据DOM树的规则,HTML文档中的所有元素都用节点来表示,根 据DOM树构建抽取规则,进行数据抽取,在数据抽取过程中,由于网页信息源的异构性,为 了不损失抽取精度,需要针对每个网站都构造相应的抽取规则,这样爬虫程序的覆盖率很 低,极大的限制了网络资源获取的可能性;基于DOM树的网络页面获取技术能够提高数据 获取的效率和系统资源利用率,但是在数据抽取过程中会依赖该页面具体的标签节点,一 旦对应的页面结构发生变化或者出现新的标签节点命名规则,不但会使爬虫获取不到正确 的数据,还会进一步导致爬虫程序停止数据获取工作。

【发明内容】

[0004] 本发明针对现有技术中存在的缺点和不足,提出了一种能够不依赖具体标签节点 进行的数据抽取,并能够有效的处理实际爬行节点动态加入与退出造成的重复爬行问题, 极大的提高了系统的调度效率,降低系统调度的性能损失的通过用户自定义网络爬虫抓取 获得网络抓取方案的方法。
[0005] 用户可通过判断特定网页的目录页或详细页的组成规则,自定义正则表达式,使 用正则表达是来过滤众多的URL,获取需要的目录页或详细页或特定页。
[0006] 对于固定的网站,其目录页或详细页的URL链接地址是相对固定不变的,通过上 层网页转至下层网页时,获得了上一层网页的全部页内链接,通过设置规则,例如正则表达 式,来只提取目录页或只提取详细页。
[0007] 根据本发明,提供了一种URL过滤方法,包括:步骤1,获取要抓取的第一 URL,抓取 第一 URL所对应的页面;步骤2,展示所述第一 URL所对应的页面文本内容与多个第二URL, 并提示用户输入URL过滤规则与文本过滤规则;步骤3,响应于用户提交了 URL过滤规则, 应用所述URL过滤规则过滤多个第二URL得到一个或多个第三URL ;步骤4,将所述一个或 多个第三URL加入抓取队列。
[0008] 根据本发明,还提供了一种URL过滤方法,包括:步骤1,获取要抓取的第一 URL,抓 取第一 URL所对应的页面;步骤2,删除第一 URL所对应的页面中的纯超链接节点;步骤3, 提取第一 URL所对应的页面中的指定节点;步骤4,展示所述指定节点所包含的文本内容与 多个第二URL,并提示用户输入URL过滤规则与文本过滤规则;步骤5,响应于用户提交了 URL过滤规则,应用所述URL过滤规则过滤多个第二URL得到一个或多个第三URL ;步骤6, 将所述一个或多个第三URL加入抓取队列。
[0009] 根据本发明提供的URL过滤方法,还包括:步骤7,将所述抓取队列中的每个URL 设为新的第一 URL ;获取抓取深度n,重复η次步骤1至步骤7。
[0010] 根据本发明提供的URL过滤方法,其中所述步骤5还包括,获取所述一个或多个第 三URL的每一个URL所对应的第二页面,应用所述文本过滤规则过滤所述第二页面;以及在 步骤6中,将过滤得到的第二页面所对应的URL加入所述抓取队列。
[0011] 根据本发明提供的URL过滤方法,其中所述步骤3,提取第一 URL所对应的页面中 的指定节点是依据用户指定的页面元素选择所述指定的节点。
[0012] 根据本发明提供的URL过滤方法,其中所述URL过滤规则为在URL中包括"page" 字符串、日期信息或时间信息。
[0013] 根据本发明提供的URL过滤方法,其中步骤2,删除第一 URL所对应的页面中 的纯超链接节点,具体包括:提取出第一 URL所对应的页面中的一个或多个超链接节 点,对每个超链接节点通过公式⑴进行计算:
其中 LinkContent (i)表示当前超链接节点下超链接文本的字符数,Content (i)则表示当前超 链接节点下所有的字符数;如果E(i) = 1,则删除当前超链接节点。
[0014] 根据本发明提供的URL过滤方法,其中所述步骤3,提取第一 URL所对应的页面中 的指定节点,包括:从第一 URL所对应的页面中抽取" ti11e "节点的内容,计算该内容的各 个词的信息指纹,并基于所述各个词的信息指纹计算该"title"节点的相似哈希值T,对第 一 URL所对应的页面中的节点i进行处理,获得与节点i对应的相似哈希值Ni,选择T与 Ni差值小于阈值的节点;作为第一 URL所对应的页面中的指定节点。
[0015] 根据本发明提供的URL过滤方法,其中所述步骤3,提取第一 URL所对应的页面中 的指定节点,包括:
[0016] 从第一 URL所对应的页面中抽取"title"节点为起始节点,自底向上迭代计算各 节点的上下文主体相关度值TTR,找到TTR值最大的节点,作为所述指定节点,
[0017] 相关度值TTR的计算公式为:
其中 TTR(ni)表示当前节点的上下文主题相关度,ContentCount (ni)表示当前节点下的字符 数,CountentCount(Pni)则表示当前节点的父节点下的字符数。
[0018] 本发明的有益效果在于,用户通过设置抓取范围,基于关键字或正则表达式搜索, 来区分目录页或详细页,从而更加精确搜索结果。对于非专业用户,编写正则表达式有困 难,通过制定URL中包含或者不包含某个(或几个)关键字来指定URL链接。
【附图说明】
[0019] 图1是根据本发明实施例的URL过滤方法流程图。
【具体实施方式】:
[0020] 下面对本发明作进一步的说明。
[0021] 图1展示了根据本发明实施例的URL过滤方法的流程图。参看图1,根据本发明的 URL过滤方法,包括:步骤110,获取要抓取的URL以及要抓取的URL所对应的页面。可由用 户指定要抓取的URL,或通过配置文件或脚本得到要抓取的URL。步骤120,向用户展示与 要抓取的URL对应的web页面,并提示用户,要求用户提供URL过滤规则和/或与文本过滤 规则,用于进行URL的过滤,并用过滤后的URL进行网页抓取。响应于用户提供URL过滤规 贝1J,基于用户提供的URL过滤规则,对页面中的URL进行过滤(步骤130)。作为举例,在步 骤110中获得的页面中,可包含多个URL,在步骤130,依据用户提供的URL过滤规则对这多 个URL进行过滤。在步骤140,基于过滤后的URL进行网页抓取,从而提高网络爬虫的准确 性。
[0022] 作为举例,用户设置的URL过滤规则可以是正则表达式、关键词或特定字符串。例 如,通过匹配" page"关键词,将以大概率找到指示详细内容页的URL;而通过匹配日期或时 间,将以大概率找到指示目录页的URL。
[0023] 依然作为举例,用户还可设置抓取深度η。依据抓取深度n,从用户指定的顶层 URL,向下抓取η层页面。并对第1层页面至第n-1层页面中包含的URL,进行过滤和抓取。
[0024] 依然作为举例,用户还设置用于提取URL或抓取信息的目标节点。
[0025] 在根据本发明的第二实施例中,过滤URL的方法包括,步骤1,获取要抓取的第一 URL,抓取第一 URL所对应的页面。步骤2,展示所述第一 URL所对应的页面文本内容与多个 第二URL,并提示用户输入URL过滤规则与文本过滤规则。步骤3,响应于用户提交了 URL 过滤规则,应用所述URL过滤规则过滤多个第二URL得到一个或多个第三URL。步骤4,将 所述一个或多个第三URL加入抓
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1