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

技术编号:20045210 阅读:37 留言:0更新日期:2019-01-09 04:15
本发明专利技术涉及计算机数据挖掘技术领域,具体为一种基于网页数据的高速主题爬虫方法。本发明专利技术利用HTML下载器、BeautifulSoup4网页解析器、json格式规整器、异常处理机制except、多线程机制threading、I/O操作eventlet共同构成的一个爬虫方法。基于开源程序组件构建的爬虫,并且在利用原有技术框架的基础之上进行深度开发定制,满足各领域用户的特定需求,节省开发的时间与经费的成本。利用已有的成熟的多线程机制与异常处理机制与I/O操作,具备高速性、高自动化、高稳定性的特性,解决了普通爬虫速度慢,异常多的问题。使用的格式化存储机制特别适用于表格类数据库,使所爬取的目标数据能够快速的存储和调用。

【技术实现步骤摘要】
一种基于网页数据的高速主题爬虫方法
本专利技术涉及计算机数据挖掘
,具体为一种基于网页数据的高速主题爬虫方法。
技术介绍
随着大数据的时代来临,互联网承载的数据存储量呈现爆炸性增长。用户常常通过搜索引擎这样一个检索工具,来作为互联网的访问入口和指南,但是,使用搜索引擎来获取数据信息均存在着一定的缺陷,即无法完美匹配。例如不同专业、背景的用户往往有不同的检索目的和需求,但是使用搜索引擎所返回的结果通常包含大量用的户不关心的内容。商业搜索引擎服务于社会大众,追求效果能够能够覆盖所有领域,所以其无法按用户的需求进行定制,从而常常反馈给用户的信息太多,噪声数据太大。这种情况下能够按需抓取相关网站数据的主题爬虫应运而生。主题爬虫即为自动下载网页的程序,它根据需求,有选择的访问互联网上的网页与相关的链接,下载用户所需数据。作为一种智能的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并进行结果存储,实现了有针对性的互联网信息采集;同时,本专利技术运用了多线程机制,与超时机制,比普通串行爬虫有更快的下载速度,更稳定的运行过程。本文档来自技高网...

【技术保护点】
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格式规整器进行规整,并将结果存储到系统中。

【技术特征摘要】
1.一种基于用户定制类型的高速主题爬虫方法,具体步骤如下:步骤1、通过网站前端的页面设定爬取入口、使用requests构造HTML下载器;所述HTML下载器用于获取URL响应,并为响应配备utf-8的解码器;步骤2、通过BeautifulSoup4网页解析器解析网页响应,通过筛选器获取网页相关数据,以及获取下个将要爬取的网页URL;步骤3、将解析后所有需求数据所在的网页URL加入threading线程池中,并使用requests构造HTML下载器并发连接URL获得网页响应,在此过程中加入超时机制eventlet,避免因异常导致的I/...

【专利技术属性】
技术研发人员:向勇梁超朱焱麟
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1