当前位置: 首页 > 专利查询>盐城工学院专利>正文

一种基于多线程的网络爬虫系统及其网页爬取方法技术方案

技术编号:15120923 阅读:151 留言:0更新日期:2017-04-09 19:37
本发明专利技术公开了一种基于多线程的基于多线程的网络爬虫系统,包括URL处理模块,通过URL类处理获得每个URL的主机名,端口号,文件名;网页爬取模块,对网页内容进行分块抓取,并将抓取的网页保存至暂存模块;网页分析模块,提取URL,对URL进行重定向,对URL进行判重处理,删除重复的URL;网页存储模块,在存储文件时判断是否存在该文件,如果不存在,则直接爬取该文件;如果存在并且此次爬取网页所获得的内容比上一次爬取的多,则覆盖原来的文件;否则,丢弃该文件。先输入与正则表达式匹配的网址,发送网页请求信号,然后触发槽函数获取匹配,最后得到包含关键字的具体信息,爬去速度快,效率高。

【技术实现步骤摘要】

本专利技术涉及一种基于多线程的网络爬虫系统,具体地涉及一种网页爬取速度快、效率高的基于多线程的网络爬虫系统及其网页爬取方法
技术介绍
网络爬虫就像是互联网这张网上爬来爬去的蜘蛛。通过网页的链接地址,网络爬虫通过从网站首页读取内容、寻找到进入下一个网页的其他链接。通过这样的循环反复,网络爬虫抓取完这个网站的所有需要的网页。爬虫程序能够自动地获取网页。在搜索引擎中它有负责因特网中网页下载的主要的功能,在引擎中起到关键的作用。从爬虫程序来看,对搜索结构都会产生直接影响的是它所采用的实现策略以及运行效率。每个搜索引擎有着不同的需求,从而要选择进行最佳爬行策略。这样才能将网络信息搜索的完美完成。因此,搜索爬虫程序体现了它的优致和效率,才能将获取的信息展现的更准确更及时。每个爬虫都有不同的应用场景,因此有不同种类的爬虫拥有不同的功能,可以将爬虫分为3种类型:a)批量型爬虫:如果针对的网页是已知的并且范围是确定的,那么可以使用批量型爬虫,当爬虫完成了爬取所要求的网页的时候,既可以停止抓取了。具体目标可能有所不同,也可能是只要达到特定的网页量就可以了,也可能是只要在特定的时间之内完成抓取就可以了等等。b)增量型爬虫:这一类网络爬虫与上面介绍的爬虫的不同点在于,它会一直去爬取网页。如果抓取到的网页发生变化,这个爬虫也会立刻进行爬取,因为在整个网络中的网页在每时每刻都在发生变化,突然发生添加网页、网页被删掉或者网页内容被修改,这些操作都是用来满足用户体验的,但是对于增量型爬虫需要及时更新它所爬取到的东西,所以在处于这个过程当中,不需要重新去抓取新的网页,而是去更新被爬取的网页。这种爬虫适用于通用的商业搜索引擎。c)垂直型爬虫:这类网络爬虫是依照网页自身的内容来爬取的,它一般爬取一些围绕某个主题的网页的内容进行爬取或者围绕某个所需要的行业的网页来爬取,它只要去爬取仅仅某一个行业的相关网页,就不用了解其他行业的任何信息。这类爬虫需要关注的焦点在于:如何因为系统资源的有限,我们不能把所有的资源都利用到爬取所有的网页,从里面再去寻找我们所需要的资源这样就大大减少了资源的利用率啦,所以我们需要爬虫能够做到尽快尽可能去寻找到与这个主题最匹配的网页,最好不要去抓取那些完全没必要的网页,从而便可以节省资源。所以这样的爬虫就会局限在垂直搜索网站或者垂直行业网站。网络爬虫的实现方法是由应用的不同属性来设定的,但是它们都有共同的特性,应该具备四种不同的特性。a)高性能,这里的性能是指爬虫在某个特定时间内爬取互联网上的网页数量,一般的评价方法是将每一秒网络爬虫能够下载的网页数越多,那么这个网络爬虫的性能就越高。因为URL的数量非常大,所以不一样的实现方法就会使得爬虫的性能会使得性能差别很大,所以要选择好的数据结构,这样才会产生高性能。b)可扩展性,爬虫系统的可扩展性是指在网页数量庞大的情况下,还需要能缩短网络爬虫的抓取的周期,就是要能够很容易通过抓取服务器和爬虫的数量来达到这个性能。c)健壮性,其实这个在所有的系统当中都是所要求的,就是用来面度很多种非正常的情况,例如爬虫爬得太深,会导致栈溢出,所以要求爬虫能够对各种各样的异常情况能够正确处理就显得至关重要了,这种健壮性使得爬虫程序能够做到在出现故障的时候,重新启动爬虫之后,使得之前爬取的网页内容和结构还能出现,而不是重新再来。d)友好性,其中有两个层次的意义,一是指维护网站用户的信息安全,二是减少没有用的大量爬虫对网站的爬取。很多东西对于网站所有人来说是不希望被搜索到的,因此要有对应的算法,来选择哪些东西是不允许被抓取的。但是,现有的基于多线程的网络爬虫系统,普遍存在爬取速度慢,效率低下的问题,而且程序非常复杂,不易维护。
技术实现思路
针对上述技术问题,本专利技术目的是:提供一种基于多线程的网络爬虫系统及其网页爬取方法,利用信号与插槽机制,先输入与正则表达式匹配的网址,产生了这个发送获取网页的请求的信号,然后根据这个信号触发了槽函数,获取所匹配的东西,最后得到包含关键字的具体信息;爬去速度快,效率高。本专利技术的技术方案是:一种基于多线程的基于多线程的网络爬虫系统,其特征在于,包括URL处理模块、网页爬取模块、网页分析模块和网页存储模块;所述URL处理模块,通过URL类处理获得每个URL的主机名,端口号,文件名;所述网页爬取模块,对网页内容进行分块抓取,并将抓取的网页保存至暂存模块;所述网页分析模块,提取URL,对URL进行重定向,对URL进行判重处理,删除重复的URL;所述网页存储模块,在存储文件时判断是否存在该文件,如果不存在,则直接爬取该文件;如果存在并且此次爬取网页所获得的内容比上一次爬取的多,则覆盖原来的文件;否则,丢弃该文件。优选的,所述URL处理模块处理包括如下步骤:a)URL的文件成员在最后以‘\\0’结尾;若该文件成员没有路径,将路径变成‘/’;b)若在URL的文件成员中包含特殊字符,将该特殊字符之前的所以字符作为文件,将该特殊字符之后的所有字符删除;c)如果在URL中没有表示端口号,则将端口成员的值设置为80;d)如果URL没有主机名的属性,则将主机名成员的值默认为初始URL的主机名。优选的,使用信号与槽在对象间建立通信,用于发送请求和接收回复。优选的,所述网页分析模块在获取到URL后利用正则表达式对URL进行验证判断,包括以下步骤:(1)首先根据文本的输入框输入的网址进行验证判断,如果网址为空或者长度为0,则输出错误提示信息,利用QMessageBox输出提示信息;(2)利用正则表达式验证是否是以http为协议的网址,如果不匹配,输出错误提示信息;若匹配,则请求获取网页内容;所述正则表达式为按照一个已知的字符串模式去匹配获取的字符串。优选的,还包括关键字匹配查找模块,用于对输入的文本进行验证,对符合要求的信息存储于列表中,并且进行一一对应,按照序号递增;根据列表中每个信息项对文本中作是否包含的判断,若包含则将文本存放进界面的表格布局的布局项中,并且将序号递增。优选的,所述网页分析模块对所读取的html信息进行解析,利用正则表达式处理,获取所有的处理信息数目,并且删除空白和特殊字符;将网页的信息以换行符为依据分隔形成列表项,将该列表项的长度作为序号;然后一一插入到表单当中。本专利技术还公开了一种基于多线程的网络爬虫系统的网页爬取方法,包括以下步骤:S01:使用多线程搜索URL;S02:对网页内容进本文档来自技高网
...

【技术保护点】
一种基于多线程的基于多线程的网络爬虫系统,其特征在于,包括URL处理模块、网页爬取模块、网页分析模块和网页存储模块;所述URL处理模块,通过URL类处理获得每个URL的主机名,端口号,文件名;所述网页爬取模块,对网页内容进行分块抓取,并将抓取的网页保存至暂存模块;所述网页分析模块,提取URL,对URL进行重定向,对URL进行判重处理,删除重复的URL;所述网页存储模块,在存储文件时判断是否存在该文件,如果不存在,则直接爬取该文件;如果存在并且此次爬取网页所获得的内容比上一次爬取的多,则覆盖原来的文件;否则,丢弃该文件。

【技术特征摘要】
1.一种基于多线程的基于多线程的网络爬虫系统,其特征在于,包括URL处理模块、网
页爬取模块、网页分析模块和网页存储模块;
所述URL处理模块,通过URL类处理获得每个URL的主机名,端口号,文件名;
所述网页爬取模块,对网页内容进行分块抓取,并将抓取的网页保存至暂存模块;
所述网页分析模块,提取URL,对URL进行重定向,对URL进行判重处理,删除重复的URL;
所述网页存储模块,在存储文件时判断是否存在该文件,如果不存在,则直接爬取该文
件;如果存在并且此次爬取网页所获得的内容比上一次爬取的多,则覆盖原来的文件;否
则,丢弃该文件。
2.根据权利要求1所述的基于多线程的网络爬虫系统,其特征在于,所述URL处理模块
处理包括如下步骤:
a)URL的文件成员在最后以‘\\0’结尾;若该文件成员没有路径,将路径变成‘/’;
b)若在URL的文件成员中包含特殊字符,将该特殊字符之前的所以字符作为文件,将
该特殊字符之后的所有字符删除;
c)如果在URL中没有表示端口号,则将端口成员的值设置为80;
d)如果URL没有主机名的属性,则将主机名成员的值默认为初始URL的主机名。
3.根据权利要求1所述的基于多线程的网络爬虫系统,其特征在于,使用信号与槽在对
象间建立通信,用于发送请求和接收回复。
4.根据权利要求1所述的基于多线程的网络爬虫系统,其特征在于,所述网页分析模块
在获取到URL后利用正则表达式对URL进行验证判断,包括以下步骤:
(1)首先根据文本的输入框输入的网址进行验证判断,如果网址为空或者长度为0,则
输出错误提示信息,利用QMessageBox输出提示信息;
(2)利用正则表达式验...

【专利技术属性】
技术研发人员:黄金城曹瑞袁敏
申请(专利权)人:盐城工学院
类型:发明
国别省市:江苏;32

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

1