CN106055722A - 网页爬虫抓取方法及系统 - Google Patents
网页爬虫抓取方法及系统 Download PDFInfo
- Publication number
- CN106055722A CN106055722A CN201610592441.4A CN201610592441A CN106055722A CN 106055722 A CN106055722 A CN 106055722A CN 201610592441 A CN201610592441 A CN 201610592441A CN 106055722 A CN106055722 A CN 106055722A
- Authority
- CN
- China
- Prior art keywords
- data stream
- link
- page
- crawled
- spiders
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种网页爬虫抓取方法及系统,根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本,本发明通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。
Description
技术领域
本发明涉及互联网信息搜索技术领域,尤其涉及一种网页爬虫抓取方法及系统。
背景技术
现有的网页爬虫抓取方法会不可避免的引入Jscript脚本以及无关内容,其抓取结果也不是纯文本,无法直接用于NLP的数据预处理等后续语义分析。
发明内容
本发明的目的是提供一种网页爬虫抓取方法及系统,解决现有的网页爬虫抓取结果包含无关内容、且不是纯文本的问题。
本发明解决其技术问题所采用的技术方案是:
一种网页爬虫抓取方法,包括:
设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
获取待爬取页面的根节点;
根据所述根节点,获取待爬取页面中的所有链接;
将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
对中间数据库中的数据流进行清洗;
提取数据流中的文本。
在此基础上,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为htmlparser。
或者,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为宽度优先遍历。
在上述任意实施例的基础上,进一步地,所述根据所述根节点,获取待爬取页面中的所有链接的步骤后,还包括:
删除页面中的自身跳转链接。
在上述任意实施例的基础上,进一步地,所述获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库的步骤中,数据流的存储格式为HTML格式。
在上述任意实施例的基础上,进一步地,所述对中间数据库中的数据流进行清洗的步骤,具体为:
采用正则表达式匹配的方式,删除不需要的标签及其字符;
根据页面特征裁剪数据流的长度,删除与正文相同的标签中不属于正文的字符;
设置垃圾字符库,删除与垃圾字符库相匹配的垃圾字符所在标签及其字符。
在上述任意实施例的基础上,进一步地,所述对中间数据库中的数据流进行清洗的步骤后,还包括:
限定数据流的字符长度。
在上述任意实施例的基础上,进一步地,所述提取数据流中的文本的步骤中,提取文本的方法为htmlparser库中的stringbean方法。
一种网页爬虫抓取系统,包括:
设置模块,用于设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
根节点获取模块,用于获取待爬取页面的根节点;
链接获取模块,用于根据所述根节点,获取待爬取页面中的所有链接;
链接匹配模块,用于将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
数据流获取模块,用于获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
数据流清洗模块,用于对中间数据库中的数据流进行清洗;
文本提取模块,用于提取数据流中的文本。
本发明的有益效果是:
本发明提供了一种网页爬虫抓取方法及系统,根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本,本发明通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1示出了本发明实施例提供的一种网页爬虫抓取方法的流程图;
图2示出了本发明实施例提供的一种网页爬虫抓取系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
具体实施例一
如图1所示,本发明实施例提供了一种网页爬虫抓取方法,包括:
步骤S101,设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
步骤S102,获取待爬取页面的根节点;
步骤S103,根据所述根节点,获取待爬取页面中的所有链接;
步骤S104,将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
步骤S105,获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
步骤S106,对中间数据库中的数据流进行清洗;
步骤S107,提取数据流中的文本。
本发明实施例根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本。本发明实施例通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。
本发明实施例对步骤S103中获取链接的方式不做限定,在上述实施例的基础上,优选的,获取链接的方式可以为htmlparser。htmlparser在html解析和分析上性能优越,适合抓取网页数据和改造html的内容。
或者,优选的,步骤S103中获取链接的方式可以为宽度优先遍历。宽度优先和深度优先相比,深度优先可能会导致过深的遍历或者陷入“黑洞”,而且一般来说网页的重要内容的会在网页的前面几级节点上,故使用深度优先不符合现实需求。
在上述任意实施例的基础上,优选的,本发明实施例在步骤S103后,还可以包括:删除页面中的自身跳转链接。这样做的好处是,减少系统的重复工作量,提升系统的工作效率。
本发明实施例对步骤S105中数据流的存储格式不做限定,在上述任意实施例的基础上,优选的,数据流的存储格式可以为HTML格式。HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等,使用HTML 语言可以把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机整体。
本发明实施例对步骤S106中数据流的清洗方式不做限定,在上述任意实施例的基础上,优选的,其清洗过程可以具体为:采用正则表达式匹配的方式,删除不需要的标签及其字符;根据页面特征裁剪数据流的长度,删除与正文相同的标签中不属于正文的字符;设置垃圾字符库,删除与垃圾字符库相匹配的垃圾字符所在标签及其字符。这样做的好处是,清除无关内容的干扰。
在上述任意实施例的基础上,优选的,本发明实施例在步骤S106后,还可以包括:限定数据流的字符长度。这样做的好处是,使人们可以得到符合自己要求的文本。
本发明实施例对步骤S107中提取文本的方法不做限定,在上述任意实施例的基础上,优选的,提取文本的方法可以为htmlparser库中的stringbean方法。Stringbean方法可以从一个指定的URL获取移除<SCRIPT></SCRIPT>和<PRE></PRE>之间代码的html代码,也可以用做Visitor,用来移除这两种标签内部的代码,采用StringBean.getStrings()来获取结果。
具体实施例二
如图2所示,本发明实施例提供了一种网页爬虫抓取系统,包括:
设置模块,用于设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
根节点获取模块,用于获取待爬取页面的根节点;
链接获取模块,用于根据所述根节点,获取待爬取页面中的所有链接;
链接匹配模块,用于将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
数据流获取模块,用于获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
数据流清洗模块,用于对中间数据库中的数据流进行清洗;
文本提取模块,用于提取数据流中的文本。
本发明实施例根据根节点获取待爬取页面中所有链接,找出其中未访问过的链接,获取未访问链接的数据流,对数据流进行清洗后,提取数据流中的文本。本发明实施例通过对数据流的清洗去除无关内容的干扰,且其抓取结果为纯文本。
尽管本发明已进行了一定程度的描述,明显地,在不脱离本发明的精神和范围的条件下,可进行各个条件的适当变化。可以理解,本发明不限于所述实施方案,而归于权利要求的范围,其包括所述每个因素的等同替换。
Claims (9)
1.一种网页爬虫抓取方法,其特征在于,包括:
设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
获取待爬取页面的根节点;
根据所述根节点,获取待爬取页面中的所有链接;
将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
对中间数据库中的数据流进行清洗;
提取数据流中的文本。
2.根据权利要求1所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为htmlparser。
3.根据权利要求1所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤中,获取链接的方式为宽度优先遍历。
4.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述根据所述根节点,获取待爬取页面中的所有链接的步骤后,还包括:
删除页面中的自身跳转链接。
5.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库的步骤中,数据流的存储格式为HTML格式。
6.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述对中间数据库中的数据流进行清洗的步骤,具体为:
采用正则表达式匹配的方式,删除不需要的标签及其字符;
根据页面特征裁剪数据流的长度,删除与正文相同的标签中不属于正文的字符;
设置垃圾字符库,删除与垃圾字符库相匹配的垃圾字符所在标签及其字符。
7.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述对中间数据库中的数据流进行清洗的步骤后,还包括:
限定数据流的字符长度。
8.根据权利要求1或2所述的网页爬虫抓取方法,其特征在于,所述提取数据流中的文本的步骤中,提取文本的方法为htmlparser库中的stringbean方法。
9.一种网页爬虫抓取系统,其特征在于,包括:
设置模块,用于设置未访问队列和已访问数据库,将待爬取页面的链接添加到未访问队列;
根节点获取模块,用于获取待爬取页面的根节点;
链接获取模块,用于根据所述根节点,获取待爬取页面中的所有链接;
链接匹配模块,用于将所获取的链接分别与已访问数据库中的链接进行匹配,在已访问数据库中没有链接与该链接匹配时,将该链接添加到未访问队列;
数据流获取模块,用于获取未访问队列中每个链接所指向页面的数据流,并将数据流存储于中间数据库;
数据流清洗模块,用于对中间数据库中的数据流进行清洗;
文本提取模块,用于提取数据流中的文本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610592441.4A CN106055722A (zh) | 2016-07-26 | 2016-07-26 | 网页爬虫抓取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610592441.4A CN106055722A (zh) | 2016-07-26 | 2016-07-26 | 网页爬虫抓取方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106055722A true CN106055722A (zh) | 2016-10-26 |
Family
ID=57418412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610592441.4A Pending CN106055722A (zh) | 2016-07-26 | 2016-07-26 | 网页爬虫抓取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106055722A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649720A (zh) * | 2016-12-22 | 2017-05-10 | 北京览群智数据科技有限责任公司 | 一种数据处理方法及服务器 |
CN107662617A (zh) * | 2017-09-25 | 2018-02-06 | 重庆邮电大学 | 基于深度学习的车载交互控制算法 |
CN109740101A (zh) * | 2019-01-18 | 2019-05-10 | 杭州凡闻科技有限公司 | 数据配置方法、公众号文章清洗方法、装置及系统 |
CN110020369A (zh) * | 2017-12-22 | 2019-07-16 | 中国移动通信集团广东有限公司 | 一种网页裁剪方法及系统 |
CN111931113A (zh) * | 2020-09-16 | 2020-11-13 | 深圳壹账通智能科技有限公司 | 一种数据清洗方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536389B1 (en) * | 2005-02-22 | 2009-05-19 | Yahoo ! Inc. | Techniques for crawling dynamic web content |
CN103514189A (zh) * | 2012-06-25 | 2014-01-15 | 上海博腾信息科技有限公司 | 一种基于搜索引擎的网络爬虫的实现方法 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN104462457A (zh) * | 2014-12-16 | 2015-03-25 | 云起思源(天津)科技有限公司 | 一种面向内部搜索引擎的信息更新检测方法 |
-
2016
- 2016-07-26 CN CN201610592441.4A patent/CN106055722A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536389B1 (en) * | 2005-02-22 | 2009-05-19 | Yahoo ! Inc. | Techniques for crawling dynamic web content |
CN103514189A (zh) * | 2012-06-25 | 2014-01-15 | 上海博腾信息科技有限公司 | 一种基于搜索引擎的网络爬虫的实现方法 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN104462457A (zh) * | 2014-12-16 | 2015-03-25 | 云起思源(天津)科技有限公司 | 一种面向内部搜索引擎的信息更新检测方法 |
Non-Patent Citations (3)
Title |
---|
LILLLLLLLL: ""html解析类库htmlparser.net使用方法"", 《CSDN》 * |
依蓝JSLEE: "网络爬虫及分布式系统", 《博客园》 * |
段建勇 等: ""IBATIS框架下文本抽取系统的研究"", 《电子科技技术》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649720A (zh) * | 2016-12-22 | 2017-05-10 | 北京览群智数据科技有限责任公司 | 一种数据处理方法及服务器 |
CN107662617A (zh) * | 2017-09-25 | 2018-02-06 | 重庆邮电大学 | 基于深度学习的车载交互控制算法 |
CN107662617B (zh) * | 2017-09-25 | 2019-11-05 | 重庆邮电大学 | 基于深度学习的车载交互控制算法 |
CN110020369A (zh) * | 2017-12-22 | 2019-07-16 | 中国移动通信集团广东有限公司 | 一种网页裁剪方法及系统 |
CN109740101A (zh) * | 2019-01-18 | 2019-05-10 | 杭州凡闻科技有限公司 | 数据配置方法、公众号文章清洗方法、装置及系统 |
CN111931113A (zh) * | 2020-09-16 | 2020-11-13 | 深圳壹账通智能科技有限公司 | 一种数据清洗方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055722A (zh) | 网页爬虫抓取方法及系统 | |
CN106874378B (zh) | 基于规则模型的实体抽取与关系挖掘构建知识图谱的方法 | |
CN101650715B (zh) | 一种筛选网页上链接的方法和装置 | |
CN106599022A (zh) | 基于用户访问数据的用户画像形成方法 | |
CN102486799B (zh) | 一种环球信息网www页面处理方法和装置 | |
CN103984749B (zh) | 一种基于链接分析的聚焦爬虫方法 | |
CN103605794A (zh) | 一种网站分类方法 | |
CN105843965A (zh) | 一种基于url主题分类的深层网络爬虫表单填充方法和装置 | |
CN101727498A (zh) | 一种基于web结构的网页信息自动提取方法 | |
CN101520798A (zh) | 基于垂直搜索和聚焦爬虫的网页分类技术 | |
CN102779169A (zh) | 一种基于html标签的网页正文提取方法及装置 | |
CN103605738A (zh) | 网页访问数据统计方法及装置 | |
CN104391978B (zh) | 用于浏览器的网页收藏处理方法及装置 | |
CN103530429B (zh) | 一种网页正文抽取的方法 | |
CN102760162A (zh) | 展现和获取下载链接的方法及装置 | |
CN101571860A (zh) | 动态网页生成方法和装置、提取结构化数据的方法和装置 | |
CN102915318B (zh) | 一种浏览器中定位查找信息的方法和装置 | |
CN103514189A (zh) | 一种基于搜索引擎的网络爬虫的实现方法 | |
CN108733813A (zh) | 面向bbs论坛网页内容的信息提取方法、系统及介质 | |
CN105938496A (zh) | 网页内容提取方法及装置 | |
KR101287371B1 (ko) | 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체 | |
CN105528357A (zh) | 一种基于url和网页文档结构的相似性的网页内容提取方法 | |
CN104361121B (zh) | 一种web报表系统公式的批量解析方法 | |
Gaur et al. | Review of ontology based focused crawling approaches | |
CN102750392A (zh) | Web主题信息提取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161026 |