CN104794193B - 一种有效链接获取的网页增量抓取方法 - Google Patents
一种有效链接获取的网页增量抓取方法 Download PDFInfo
- Publication number
- CN104794193B CN104794193B CN201510185493.5A CN201510185493A CN104794193B CN 104794193 B CN104794193 B CN 104794193B CN 201510185493 A CN201510185493 A CN 201510185493A CN 104794193 B CN104794193 B CN 104794193B
- Authority
- CN
- China
- Prior art keywords
- link
- url
- paging
- webpage
- crawl
- 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
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
有效链接获取的网页增量抓取方法,包括如下步骤:1)有效链接获取阶段:a初始化抓取网页链接,指定抓取入口URL;b判断入口网页链接是否具有分页;c计算入口网页与其分页的公共链接;d通过公共链接获取有效链接;e结束;2)增量抓取阶段:a构建布隆过滤器,并通过布隆过滤器判断步骤1)‑d中有效网页链接是否已经抓取;b通过HTTP请求抓取未抓取的网页;c结束;本发明采用过滤无效链接获取有效的网页链接,并构建布隆过滤器维持已抓取链接集合,通过随机哈希判断网页是否抓取实现增量抓取。通过过滤无效链接,避免无效网页的抓取。
Description
技术领域:
本发明涉及一种基于无效链接过滤的有效网页链接获取方法,以及对获取的有效网页链接增量抓取的技术。
背景技术:
互联网技术的高速发展以及智能移动终端的迅速普及,使得信息呈现爆炸式的增长,也给快速、高效的从互联网中抓取所需信息带来新的挑战。
传统网页信息抓取通常采用深度或广度遍历的抓取方式,从指定的网页链接开始逐层信息抓取,并提取每层中的URL链接作为下一层抓取的起始链接。由于网页中链接并非都指向有用的信息,如网页中的菜单、广告、页脚等,如果不能有效的过滤无效链接将抓取大量的无效信息,降低网页抓取的准确性和效率。同时,无效链接间的相互指向将导致抓取过程陷于无限循环。
由于互联网中信息更新速度快,网页信息需要定时重新抓取。在重新抓取过程中需要快速判断链接是否已经抓取,避免重复网页信息抓取。网页URL具有唯一性,在抓取过程中维持一个已抓取网页URL集合,重新抓取时判断待抓取网页URL是否在该集合中便可判断该网页信息是否已经抓取。随着抓取数量增大,判断URL是否在已抓取URL集合将严重影响效率。
本发明实现了一种网页中无效链接过滤来获取网页中有效链接集合,并通过将网页URL随机哈希到布隆过滤器位图集合中来实现已抓取网页URL快速、高效的判断,从而增量抓取网页信息。
发明内容:
本发明要解决的技术问题是,实现网页中有效链接获取,并同过布隆过滤器维持已抓取链接集合,以高效、实时的增量抓取网页信息。
针对上述技术问题,本发明的技术方案是,有效链接获取的网页增量抓取方法,包括如下步骤:
1)有效链接获取阶段:
a初始化抓取网页链接,指定抓取入口URL;
b判断入口网页链接是否具有分页;
c计算入口网页与其分页的公共链接;
d通过公共链接获取有效链接;
e结束。
2)增量抓取阶段:
a构建布隆过滤器,并通过布隆过滤器判断步骤1)-d中有效网页链接是否已经抓取;
b通过HTTP请求抓取未抓取的网页;
c结束。
步骤1)-a中抓入口URL是指抓取程序以此URL开始逐层抓取。
步骤1)-b中分页是指在网页中由于信息太多采用分页形式显示,每一页显示一部分信息。分页的具体判断方法如下:
1)获取入口URL页面中所有的链接,保存集合PageAllUrl中;
2)通过匹配PageAllUrl中每个URL链接文本中是否为“下一页”或“下页”等分页标志来判断是否有分页。
步骤1)-c中公共链接是指入口URL页面与其分页网页中相同的URL,其具体计算方法如下:
1)获取入口URL分页网页中所有的链接,保存集合NextPageAllUrl中;
2)比较集合PageAllUrl和集合NextPageAllUrl,找出它们相同的URL并保存在集合CommonUrl中,即公共链接集合CommonUrl=PageAllUrl∩NextPageAllUrl。
步骤1)-d中有效链接是指非菜单、导航、广告等无效链接,其具体方法如下:
1)在步骤1)-b中判断入口URL是否具有分页,如有执行2),否则执行3);
2)从集合PageAllUrl中链接去掉集合CommonUrl中链接,并将结果保存在集合EffectiveUrl中,即有效链接集合EffectiveUrl=PageAllUrl-CommonUrl;
3)分析入口URL链接,获取其主机域名HostUrl;
4)判断集合PageAllUrl是否为空,如果不为空则执行5),否则执行8);
5)从集合PageAllUrl中取出一个Url;
6)判断Url是否是入口URL的前缀,如果是则执行7),否则执行4);
7)将Url加入有效链接集合EffectiveUrl中,执行4);
8)结束。
步骤2)-a和2)-b中构建布隆过滤器是指设定布隆过滤器的大小、误判率以及随机哈希函数。本发明设置其大小为90000000,误判率为0.000001,随机哈希函数为MD5Hash。其判断方法具体如下:
1)初始化布隆过滤器BloomFilter;
2)判断集合EffectiveUrl是否为空,如果不为空则执行3),否则执行7);
3)从集合EffectiveUrl中取出一个Url;
4)判断Url是否在BloomFilter中,如果在则执行2),否则执行5);
5)通过HTTP请求抓取Url链接的网页信息;
6)将Url保存到BloomFilter中,执行2);
7)结束。
本发明的有益效果:本发明有效链接获取的网页增量抓取方法,采用过滤无效链接获取有效的网页链接,并构建布隆过滤器维持已抓取链接集合,通过随机哈希判断网页是否抓取实现增量抓取。本发明通过过滤无效链接,避免无效网页的抓取,提高抓取效率的同时也增加抓取信息的准备率。此外,本发明采用增量抓取策略不但避免重复抓取,而且大幅提高网页抓取频率。
附图说明:
图1为本发明的流程图。
图2为有效链接获取阶段的流程图。
图3为增量抓取阶段的结构图。
具体实施方式:
为了更好的了解本发明的技术内容,下面结合附图对本发明进行详细说明。
图1是本发明实施例的用于有效链接获取的增量网页抓取方法的流程图,其包括两个阶段:有效链接获取阶段和增量抓取阶段。
步骤0为本发明的起始状态;
在有效链接获取阶段(步骤1-4),步骤1是初始化抓取入口URL链接,抓取程序从此逐层抓取;
步骤2通过匹配中入口URL网页中每个URL链接文本中是否为“下一页”或“下页”等分页标志判断其是否有分页;
步骤3通过比较入口URL网页中链接和其分页网页中链接,找出其公共链接;
步骤4将入口URL网页以及其分页网页中链接去掉步骤3中获取的公共链接,获取有效链接。
在增量抓取阶段(步骤5、6),步骤5使用布隆过滤器维持已抓取链接集合,并通过随机哈希快速判断链接所指向网页是否已抓取;
步骤6通过HTTP请求抓取未抓取的网页;
步骤7为本发明的结束步骤。
图2是对图1中有效链接获取阶段的具体描述:
步骤10为起始步骤;
步骤11初始化网页链接URL。
步骤12获取入口URL页面中所有的链接,保存集合PageAllUrl中;
步骤20通过匹配PageAllUrl中每个URL链接文本中是否为“下一页”或“下页”等分页标志判断是否具有分页。如果匹配成功执行步骤30,否则执行步骤41;
步骤30为获取分页网页中所有的链接,保存集合NextPageAllUrl中;
步骤31为获取公共链接,方法为比较集合PageAllUrl和集合NextPageAllUrl,找出它们相同的URL并保存在集合CommonUrl中,即公共链接集合CommonUrl=PageAllUrl∩NextPageAllUrl;
步骤40为获取有效链接,方法为从集合PageAllUrl中链接去掉集合CommonUrl中链接,并将结果保存在集合EffectiveUrl中,即有效链接集合EffectiveUrl=PageAllUrl-CommonUrl;
步骤41分析入口URL链接,获取其主机域名HostUrl;
步骤42判断集合PageAllUrl是否为空,如果不为空则执行步骤43,否则执行步骤46;
步骤43从集合PageAllUrl中取出一个Url;
步骤44判断Url是否是入口URL的前缀,如果是则执行步骤42,否则执行步骤45;
步骤45将Url加入有效链接集合EffectiveUrl中,执行步骤42;
步骤46为结束步骤。
图3是图1中增量抓取阶段的具体描述:
步骤50为起始步骤;
步骤51构建并初始化布隆过滤器,其中布隆过滤器的大小设置为90000000,误判率设置为0.000001,随机哈希函数设置为MD5Hash;
步骤52判断集合EffectiveUrl是否为空,非空则执行步骤53,否则执行步骤62;
步骤53从集合EffectiveUrl中取出一个Url;
步骤54判断Url是否在BloomFilter中,如果在则执行步骤52,否则执行步骤60;
步骤60通过HTTP请求抓取Url链接的网页信息;
步骤61将Url保存到BloomFilter中,执行步骤52;
步骤62为结束步骤。
综上所述,本发明采用无效链接过滤方式获取有效的网页链接,并采用布隆过滤器维持已抓取链接集合,通过链接哈希判断网页是否抓取实现增量抓取。本发明过滤无效链接,避免无效网页的抓取,提高抓取效率的同时也增加抓取信息的准备率。本发明采用增量抓取策略不但避免重复抓取,而且大幅提高网页抓取频率。
本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (2)
1.有效链接获取的网页增量抓取方法,其特征是包括如下步骤:
1) 有效链接获取阶段:
a 初始化抓取网页链接,指定抓取入口URL;
b 判断入口网页链接是否具有分页;
c 计算入口网页与其分页的公共链接;
d 通过公共链接获取有效链接;
e 结束;
2) 增量抓取阶段:
a 构建布隆过滤器,并通过布隆过滤器判断步骤 1)-d 中有效网页链接是否已经抓取;
b 通过 HTTP 请求抓取未抓取的网页;
c 结束;
步骤 1)-a 中抓取入口 URL 是指抓取程序以此 URL开始逐层抓取;
步骤 1)-b 中分页是指在网页中由于信息太多采用分页形式显示,每一页显示一部分信息;
分页的具体判断方法如下:
(1) 获取入口 URL 页面中所有的链接,保存集合 PageAllUrl 中;
(2)通过匹配 PageAllUr l 中每个 URL 链接文本中是否为“下一页”或“下页”分页标志来判断是否有分页;
步骤 1)-c 中公共链接是指入口 URL 页面与其分页网页中相同的 URL,其具体计算方法如下:
(1) 获取入口 URL 分页网页中所有的链接,保存集合 NextPageAllUrl 中;
(2)比较集合 PageAllUrl 和集合 NextPageAllUrl ,找出它们相同的 URL 并保存在集合 CommonUrl 中,即公共链接集合 CommonUrl = PageAllUrl ∩ NextPageAllUrl;
步骤 1)-d 中有效链接是指非菜单、导航、广告无效链接,其具体方法如下:
(1) 在步骤 1)-b 中判断入口 URL 是否具有分页,如有执行 (2),否则执行(3);
(2) 从集合PageAllUrl 中链接去掉集合 CommonUrl 中链接,并将结果保存在集合EffectiveUrl 中,即有效链接集合 EffectiveUrl=PageAllUrl-CommonUrl ;
(3) 分析入口 URL 链接,获取其主机域名 HostUrl;
(4)判断集合 PageAllUrl 是否为空,如果不为空则执行(5),否则执行(8);
(5)从集合 PageAllUrl 中取出一个 Url;
(6)判断 Url 是否是入口 URL 的前缀,如果是则执行(7),否则执行(4);
(7) 将 Url 加入有效链接集合 EffectiveUrl 中,执行(4);
(8) 结束。
2.根据权利要求 1 所述的有效链接获取的网页增量抓取方法,其特征是步骤 2)-a和 2)-b 中构建布隆过滤器是指设定布隆过滤器的大小、误判率以及随机哈希函数:设置布隆过滤器大小为 90000000,误判率为 0.000001,随机哈希函数为 MD5Hash;
其判断方法具体如下:
1) 初始化布隆过滤器 BloomFilter;
2) 判断集合 EffectiveUrl 是否为空,如果不为空则执行 3),否则执行 7);
3) 从集合 EffectiveUrl 中取出一个 Url;
4) 判断Url 是否在 BloomFilter 中,如果在则执行 2),否则执行 5);
5) 通过 HTTP 请求抓取 Url 链接的网页信息;
6) 将 Url 保存到 BloomFilter 中,执行 2);
7) 结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510185493.5A CN104794193B (zh) | 2015-04-17 | 2015-04-17 | 一种有效链接获取的网页增量抓取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510185493.5A CN104794193B (zh) | 2015-04-17 | 2015-04-17 | 一种有效链接获取的网页增量抓取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794193A CN104794193A (zh) | 2015-07-22 |
CN104794193B true CN104794193B (zh) | 2018-04-03 |
Family
ID=53558985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510185493.5A Active CN104794193B (zh) | 2015-04-17 | 2015-04-17 | 一种有效链接获取的网页增量抓取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794193B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320740B (zh) * | 2015-09-22 | 2018-10-16 | 清华大学 | 微信文章以及公众号的获取方法及获取系统 |
CN106874299A (zh) * | 2015-12-14 | 2017-06-20 | 北京国双科技有限公司 | 网页检测方法和装置 |
CN106874165B (zh) * | 2015-12-14 | 2020-08-11 | 北京国双科技有限公司 | 网页检测方法和装置 |
CN106874298A (zh) * | 2015-12-14 | 2017-06-20 | 北京国双科技有限公司 | 网页检测方法和装置 |
CN105630673B (zh) * | 2015-12-17 | 2018-12-25 | 北京锐安科技有限公司 | 一种网络爬虫率的自动化测试方法及装置 |
CN105430002A (zh) * | 2015-12-18 | 2016-03-23 | 北京奇虎科技有限公司 | 漏洞检测方法及装置 |
CN105653627A (zh) * | 2015-12-28 | 2016-06-08 | 湖南蚁坊软件有限公司 | 一种基于布隆过滤器的数据分类方法 |
CN106970930B (zh) * | 2016-10-10 | 2021-01-05 | 创新先进技术有限公司 | 消息发送确定方法及装置、数据表创建方法及装置 |
CN108228614B (zh) * | 2016-12-14 | 2022-03-18 | 北京国双科技有限公司 | 检测网页断链的方法及装置 |
CN108400884B (zh) * | 2018-01-10 | 2021-08-03 | 贝壳找房(北京)科技有限公司 | 一种提高网站服务稳定性的方法、系统及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008011448A (ja) * | 2006-06-30 | 2008-01-17 | Ntt Docomo Inc | アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム |
CN101227318A (zh) * | 2007-12-04 | 2008-07-23 | 东南大学 | 高速网络流量的超点实时检测方法 |
CN103646078A (zh) * | 2013-12-11 | 2014-03-19 | 北京启明星辰信息安全技术有限公司 | 一种实现互联网宣传监测目标评估的方法及装置 |
-
2015
- 2015-04-17 CN CN201510185493.5A patent/CN104794193B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008011448A (ja) * | 2006-06-30 | 2008-01-17 | Ntt Docomo Inc | アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム |
CN101227318A (zh) * | 2007-12-04 | 2008-07-23 | 东南大学 | 高速网络流量的超点实时检测方法 |
CN103646078A (zh) * | 2013-12-11 | 2014-03-19 | 北京启明星辰信息安全技术有限公司 | 一种实现互联网宣传监测目标评估的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"蜜蜂群并行网页抓取系统";郭邦财;《软件导刊》;20110131;第68页到70页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104794193A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104794193B (zh) | 一种有效链接获取的网页增量抓取方法 | |
CN103810425B (zh) | 恶意网址的检测方法及装置 | |
CN102222187B (zh) | 基于域名构造特征的挂马网页检测方法 | |
CN104750704B (zh) | 一种网页url地址分类识别方法及装置 | |
CN104504109B (zh) | 图片搜索方法和装置 | |
CN104598577B (zh) | 一种网页正文的提取方法 | |
CN102253979A (zh) | 基于视觉的web页面萃取方法 | |
CN105138558A (zh) | 基于用户访问内容的实时个性化信息采集方法 | |
CN103927400A (zh) | Web网站产品详细信息的分类抓取及产品信息库建立方法 | |
CN101441687B (zh) | 一种提取病毒文件的病毒特征的方法及其装置 | |
CN102831242B (zh) | 搜索图片信息的方法及装置 | |
RU2016118758A (ru) | Способ и устройство для определения сходства, а также терминал | |
CN103281320A (zh) | 基于网页图标匹配的品牌仿冒网站检测方法 | |
CN105117436B (zh) | 网站频道自动挖掘方法 | |
CN105528422A (zh) | 一种主题爬虫处理方法及装置 | |
CN103745012A (zh) | 一种根据产品标题智能匹配显示网页推荐信息的方法和系统 | |
CN105302876A (zh) | 基于正则表达式的url过滤方法 | |
CN102682011B (zh) | 建立域名描述名称信息表、搜索的方法、装置及系统 | |
CN104915420A (zh) | 知识库数据处理方法及系统 | |
CN102207974B (zh) | 一种上下文web页面合并方法 | |
CN105978850A (zh) | 一种基于图形匹配的仿冒网站检测系统及检测方法 | |
CN103955517B (zh) | 将文档型数据库的数据转换至关系型数据库的方法及系统 | |
CN106547803B (zh) | 爬取网站增量资源的方法和装置 | |
CN105528421B (zh) | 一种针对海量数据中查询词的搜索维度挖掘方法 | |
CN103679019A (zh) | 恶意文件识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |