CN109165333A - 一种基于网页数据的高速主题爬虫方法 - Google Patents

一种基于网页数据的高速主题爬虫方法 Download PDF

Info

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
Application number
CN201810761246.9A
Other languages
English (en)
Inventor
向勇
梁超
朱焱麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201810761246.9A priority Critical patent/CN109165333A/zh
Publication of CN109165333A publication Critical patent/CN109165333A/zh
Pending legal-status Critical Current

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。
CN201810761246.9A 2018-07-12 2018-07-12 一种基于网页数据的高速主题爬虫方法 Pending CN109165333A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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正文内容抽取方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
刘志军: "爬虫入门系列", 《HTTPS://FOOFISH.NET/UNDERSTAND-HTTP.HTML》 *

Cited By (3)

* Cited by examiner, † Cited by third party
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