CN109165333A - 一种基于网页数据的高速主题爬虫方法 - Google Patents
一种基于网页数据的高速主题爬虫方法 Download PDFInfo
- Publication number
- CN109165333A CN109165333A CN201810761246.9A CN201810761246A CN109165333A CN 109165333 A CN109165333 A CN 109165333A CN 201810761246 A CN201810761246 A CN 201810761246A CN 109165333 A CN109165333 A CN 109165333A
- Authority
- CN
- China
- Prior art keywords
- url
- crawler
- response
- high speed
- webpage
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及计算机数据挖掘技术领域,具体为一种基于网页数据的高速主题爬虫方法。本发明利用HTML下载器、BeautifulSoup4网页解析器、json格式规整器、异常处理机制except、多线程机制threading、I/O操作eventlet共同构成的一个爬虫方法。基于开源程序组件构建的爬虫,并且在利用原有技术框架的基础之上进行深度开发定制,满足各领域用户的特定需求,节省开发的时间与经费的成本。利用已有的成熟的多线程机制与异常处理机制与I/O操作,具备高速性、高自动化、高稳定性的特性,解决了普通爬虫速度慢,异常多的问题。使用的格式化存储机制特别适用于表格类数据库,使所爬取的目标数据能够快速的存储和调用。
Description
技术领域
本发明涉及计算机数据挖掘技术领域,具体为一种基于网页数据的高速主题爬虫方法。
背景技术
随着大数据的时代来临,互联网承载的数据存储量呈现爆炸性增长。用户常常通过搜索引擎这样一个检索工具,来作为互联网的访问入口和指南,但是,使用搜索引擎来获取数据信息均存在着一定的缺陷,即无法完美匹配。例如不同专业、背景的用户往往有不同的检索目的和需求,但是使用搜索引擎所返回的结果通常包含大量用的户不关心的内容。商业搜索引擎服务于社会大众,追求效果能够能够覆盖所有领域,所以其无法按用户的需求进行定制,从而常常反馈给用户的信息太多,噪声数据太大。
这种情况下能够按需抓取相关网站数据的主题爬虫应运而生。主题爬虫即为自动下载网页的程序,它根据需求,有选择的访问互联网上的网页与相关的链接,下载用户所需数据。作为一种智能的Web爬虫,它的工作原理与一般的爬虫相似。不同的是,主题爬虫不追求大面积数据的覆盖,而是通过自然语言识别、图像分析等方式筛选网站上的所有数据,去除噪声,并将爬取的目标数据自动存入本地,方便用户查询与使用。
对于主题爬虫,在爬取数据的过程中常常有两个需要解决的重点问题是:一,程序的连接速度问题,网站服务器响应慢通常会导致爬虫程序的连接速度缓慢,从而使爬虫程序运行时间漫长,程序错误或者假死;二,数据存储问题,不同的目标数据通常在数据库中的物理模型不同,使得存储难度加大;就目前来说,现存的开源爬虫缺乏定制性,不能很好的满足用户的精准爬取需求。
因此,如何提升主题爬虫的爬取速度与稳定性,并具有通用存储方法,是现存爬虫技术的首要问题。
发明内容
针对上述存在问题或不足,为提升主题爬虫的爬取速度与稳定性,并具有通用存储方法,本发明提供了一种基于网页数据的高速主题爬虫方法。
具体技术方案步骤如下:
步骤1、通过网站前端的页面设定爬取入口、使用requests构造HTML下载器;所述HTML下载器用于获取URL响应,并为响应配备utf-8的解码器;
步骤2、通过BeautifulSoup4网页解析器解析网页响应,通过筛选器获取网页相关数据,以及获取下个将要爬取的网页URL;
步骤3、将解析后所有需求数据所在的网页URL加入threading线程池中,并使用requests构造HTML下载器并发连接URL获得网页响应,在此过程中加入超时机制eventlet,避免因异常导致的I/O阻塞;
步骤4、将步骤3获得的所有网页响应依次加入队列,在队头使用BeautifulSoup4解析响应,筛选器获取网页目标数据以及对应网页需要的下层URL;
步骤5、将筛选器获取的目标数据通过json格式规整器进行规整,并将结果存储到系统中。
进一步的,在爬虫程序运行的整个过程中,采用异常处理机制监控并处理连接URL、解析页面、格式化写入时出现的响应超时,解码错误,键值错误的异常,避免程序异常中断。所述异常处理机制选用except。
本发明利用HTML下载器、BeautifulSoup4网页解析器、json格式规整器、异常处理机制except、多线程机制threading、I/O操作eventlet共同构成的一个爬虫方法。基于开源程序组件构建的爬虫,并且在利用原有技术框架的基础之上进行深度开发定制,满足各领域用户的特定需求,节省开发的时间与经费的成本。利用已有的成熟的多线程机制与异常处理机制与I/O操作,具备高速性、高自动化、高稳定性的特性,解决了普通爬虫速度慢,异常多的问题。使用的格式化存储机制特别适用于表格类数据库,使所爬取的目标数据能够快速的存储和调用。
综上所述,本发明具有高速,稳定,存储适用性广等特点,具有很好的推广使用价值。
附图说明
图1为实施例提供的一种材料数据库网页的常规构架图;
图2为实施例提供的主题爬虫的爬取过程示意图。
具体实施方式
下面结合附图和实施例,对本发明进行进一步的详细说明。
参见图1,该图示出了一种材料数据库的常规构架,用户需要使用关键字元素来穿过项目层、集合层、计算层、来爬取材料数据库的数据。
参见图2,该图示出了本发明高速主题爬虫方法在本实施例的所有步骤,接下来对每个步骤进行详细说明。
步骤1、通过get连接目标网站主URL,获取网页响应,并给响应给予‘utf-8’的编码格式,后续该步骤的URL会替换为项目层URL、集合层URL、计算层URL。
步骤2、这个时候可能出现ConnectError的异常,该异常出现的原因是用户网络波动,或是数据库服务器端未响应,通过异常处理进行重连即可解决。
步骤3、通过BeautifulSoup4解析网页响应,筛选器按照解析后排列元素顺序获取一个关键字元素,上层URL与该层元素拼接后获得下层URL。
步骤4、判断步骤3中解析的网页是否为计算层,若否则将下层URL转到步骤1重复运行程序,若是则将计算层中所有元素与计算层URL拼接成为材料数据URL,并将本次步骤获得的所有URL加入线程池。
步骤5、超时机制开始运行,给线程池中的所有线程一个运行时限。线程池中所有线程并发运行,每个线程连接属于该线程的URL,将响应编码转为‘utf-8’编码格式并存入队列,队头的筛选器获取目标数据,将结果通过json格式规整器将数据存入数据库中。
步骤6、在上个步骤的过程中,首先超时机制需要判断每个线程是否在规定时限内运行完毕,若运行时间超过规定时间则抛弃该线程,若未超时则检测是否有异常产生,该步骤出现的异常有2,JsonDecodeError与KeyError,这两个异常均因噪声数据点产生,通过异常处理跳过该数据点即可。
步骤7、判断隔层元素下载情况,情况有4:
a、计算层中的一个元素的所有子元素的数据均下载完毕,则解析获取计算层下一个元素的URL,转入步骤1。
b、计算层中的所有元素的数据均下载完毕,则解析获取集合层下一个元素的URL,转入步骤1。
c、集合层中的所有元素的数据均下载完毕,则解析获取项目层下一个元素的URL,转入步骤1。
d、项目层中的所有元素的数据均下载完毕,则该数据库的所有数据均成功下载,爬虫程序终止。
本发明基于互联网对象,根据用户设定需求的目标数据,从互联网爬取对应的资源、筛选URL并进行结果存储,实现了有针对性的互联网信息采集;同时,本发明运用了多线程机制,与超时机制,比普通串行爬虫有更快的下载速度,更稳定的运行过程。
Claims (3)
1.一种基于用户定制类型的高速主题爬虫方法,具体步骤如下:
步骤1、通过网站前端的页面设定爬取入口、使用requests构造HTML下载器;所述HTML下载器用于获取URL响应,并为响应配备utf-8的解码器;
步骤2、通过BeautifulSoup4网页解析器解析网页响应,通过筛选器获取网页相关数据,以及获取下个将要爬取的网页URL;
步骤3、将解析后所有需求数据所在的网页URL加入threading线程池中,并使用requests构造HTML下载器并发连接URL获得网页响应,在此过程中加入超时机制eventlet,避免因异常导致的I/O阻塞;
步骤4、将步骤3获得的所有网页响应依次加入队列,在队头使用BeautifulSoup4解析响应,筛选器获取网页目标数据以及对应网页需要的下层URL;
步骤5、将筛选器获取的目标数据通过json格式规整器进行规整,并将结果存储到系统中。
2.如权利要求1所述基于用户定制类型的高速主题爬虫方法,其特征在于:
在爬虫程序运行的整个过程中,采用异常处理机制监控并处理连接URL、解析页面、格式化写入时出现的响应超时,解码错误,键值错误的异常。
3.如权利要求1所述基于用户定制类型的高速主题爬虫方法,其特征在于:所述异常处理机制选用except。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810761246.9A CN109165333A (zh) | 2018-07-12 | 2018-07-12 | 一种基于网页数据的高速主题爬虫方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810761246.9A CN109165333A (zh) | 2018-07-12 | 2018-07-12 | 一种基于网页数据的高速主题爬虫方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109165333A true CN109165333A (zh) | 2019-01-08 |
Family
ID=64897689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810761246.9A Pending CN109165333A (zh) | 2018-07-12 | 2018-07-12 | 一种基于网页数据的高速主题爬虫方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165333A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310002A (zh) * | 2020-04-17 | 2020-06-19 | 西安热工研究院有限公司 | 一种基于分发器和配置表组合的泛型爬虫系统 |
CN113297449A (zh) * | 2021-05-21 | 2021-08-24 | 南京大学 | 一种流式爬虫实现方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080275906A1 (en) * | 1998-04-16 | 2008-11-06 | Rhoads Geoffrey B | Content Indexing and Searching Using Content Identifiers and Associated Metadata |
CN101471818A (zh) * | 2007-12-24 | 2009-07-01 | 北京启明星辰信息技术股份有限公司 | 一种恶意注入脚本网页检测方法和系统 |
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集系统 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和系统 |
CN104915438A (zh) * | 2015-06-25 | 2015-09-16 | 西安交通大学 | 一种获取特定话题微博中pcu关联数据的方法 |
CN105630941A (zh) * | 2015-12-23 | 2016-06-01 | 成都电科心通捷信科技有限公司 | 基于统计和网页结构的Web正文内容抽取方法 |
-
2018
- 2018-07-12 CN CN201810761246.9A patent/CN109165333A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080275906A1 (en) * | 1998-04-16 | 2008-11-06 | Rhoads Geoffrey B | Content Indexing and Searching Using Content Identifiers and Associated Metadata |
CN101471818A (zh) * | 2007-12-24 | 2009-07-01 | 北京启明星辰信息技术股份有限公司 | 一种恶意注入脚本网页检测方法和系统 |
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集系统 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和系统 |
CN104915438A (zh) * | 2015-06-25 | 2015-09-16 | 西安交通大学 | 一种获取特定话题微博中pcu关联数据的方法 |
CN105630941A (zh) * | 2015-12-23 | 2016-06-01 | 成都电科心通捷信科技有限公司 | 基于统计和网页结构的Web正文内容抽取方法 |
Non-Patent Citations (1)
Title |
---|
刘志军: "爬虫入门系列", 《HTTPS://FOOFISH.NET/UNDERSTAND-HTTP.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310002A (zh) * | 2020-04-17 | 2020-06-19 | 西安热工研究院有限公司 | 一种基于分发器和配置表组合的泛型爬虫系统 |
CN111310002B (zh) * | 2020-04-17 | 2023-04-07 | 西安热工研究院有限公司 | 一种基于分发器和配置表组合的泛型爬虫系统 |
CN113297449A (zh) * | 2021-05-21 | 2021-08-24 | 南京大学 | 一种流式爬虫实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
US7725875B2 (en) | Automated world wide web navigation and content extraction | |
US7310632B2 (en) | Decision-theoretic web-crawling and predicting web-page change | |
CN109902220B (zh) | 网页信息获取方法、装置和计算机可读存储介质 | |
AU2005309617B2 (en) | Method and apparatus for an application crawler | |
CN107590188A (zh) | 一种自动化垂直细分领域的爬虫爬取方法及其管理系统 | |
US6810414B1 (en) | System and methods for easy-to-use periodic network data capture engine with automatic target data location, extraction and storage | |
CN102760151B (zh) | 开源软件获取与搜索系统的实现方法 | |
CN112597373B (zh) | 一种基于分布式爬虫引擎的数据采集方法 | |
US8713424B1 (en) | Asynchronous loading of scripts in web pages | |
CN105893583A (zh) | 基于人工智能的数据采集方法及系统 | |
CN102890692A (zh) | 一种网页信息抽取方法及抽取系统 | |
DE202015009301U1 (de) | Automatisches Crawling von Anwendungen | |
US20070204216A1 (en) | System and method for creating layouts using a layout editor | |
CN111488508A (zh) | 一种支持多协议分布式高并发的互联网信息采集系统及方法 | |
CN102402627A (zh) | 一种文章实时智能抓取系统和方法 | |
CN111859075A (zh) | 一种基于异步处理框架的具有自动测试功能的数据爬取方法 | |
CN109165333A (zh) | 一种基于网页数据的高速主题爬虫方法 | |
DE60319753T2 (de) | System und verfahren zur dynamisch optimierten nachrichtenverarbeitung | |
CN109766488A (zh) | 一种基于Scrapy的数据采集方法 | |
CN113918460A (zh) | 页面测试方法、装置、设备和介质 | |
CN113094568A (zh) | 一种基于数据爬虫技术的数据提取方法 | |
CN105069004A (zh) | 专利信息自动采集方法 | |
CN112667873A (zh) | 一种适用于多数网站通用采集数据的爬虫系统及方法 | |
CN107679168B (zh) | 一种基于java平台的目标网站内容获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20190108 |