你知道爬虫的现状吗?带你研究研究

引言

Internet 的飞速发展加快了网络信息量增长。在互联网这个庞大的资源库中, 网页搜索引擎是人们获取外界信息的主要工具。为了提 高检索质量,达到更好的检索体验,通用搜索引擎应运而生。通用搜索引擎利用爬虫程序对网站进行检索,如谷歌、百度等面向所有用户的大型搜索引擎,把种子页面作为搜索起点,力图遍历整个网络,尽可能全面搜索到人们 所需的信息。然而,针对某一特定主题,通用搜索引擎存在信息冗余大、内存占用高、消耗系统资源、查准率低和个性化需求弱等问题 ,为解决这些问题,出现了抓取特定领 域信息资源的主题网络爬虫(Topical Web Crawler)技术。 主题网络爬虫又称主题爬虫(Topical Crawler)和聚焦爬虫 (Focused Crawling),是网络爬虫的一个重要分支 。主题 网络爬虫指尽可能爬行和收集用户所需的网页,与通用网 络爬虫有较大差异,它只抓取用户特定的、与主题相关的 网页,忽略与主题无关的网页,具有准确性、深入性和专业性等特点。 近年来,国内外专家学者对主题网络爬虫技术研究取 得了显著成果,但鲜有文献对主题网络爬虫研究发展状况 进行分析和系统梳理。因此,对近年来主题网络爬虫进行综述显得至关重要。
在这里插入图片描述

1 主题网络爬虫定义与工作原理

1.1 主题网络爬虫定义

主题网络爬虫是一种自动搜索并下载互联网资源的程序或脚本,是搜索引擎的重要组成部分,主要负责将互联网上的资源下载到本地,在本地形成网页镜像备份。
在这里插入图片描述

1.2 主题网络爬虫工作原理

网络爬虫是一个自动提取网页的程序,它为搜索引擎从 Internet 网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的 URL 开始,获 得初始网页上的 URL,在抓取网页的过程中,不断从当前负面上抽取新的 URL 放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网贡分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的 URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的杳询和检索。对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
在这里插入图片描述

2 主题网络爬虫研究现状

2.1 国外研究现状

国外主题爬虫研究始于上世纪 90 年代,提出一些获取特定内容的爬行策略,只是当时还没有提出主题网络爬虫概念。1994年,DeBra[4]设计了Fish-search算法用来指导爬虫抓取方向,在特定的范围内爬取网页。若抓取到相关网页,则继续游动,反之则停止。由于Fish不能估算出页面和主题的相关程度,Michael Hersovici[5]基于Fish-Search算法于1998年提出了Shark-Search算法,该算法通过0~1的区间值表示候选URL的优先级。直到1999年,Chakrabarti等[6]提出主题网络爬虫概念,主要用于描述超链接资源发现系统,这一系统主要包括分类器和过滤器。分类器用来评估文本内容和主题相关度,过滤器用来过滤无关链接网页,是早期主题网络爬虫较典型的研究之一。2001年,Junghoo Cho提出了best-first-search搜索策略。上述3类主题网络爬虫的设计思想主要涉及网页上的文本和内容,根据文本和内容选择下载页面及将要访问的URL。基于链接结构评价这一爬取策略主要有PageRank算法和HITS算法。Larry Page[7]提出的PageRank算法,主要根据是否被权威网站指向及链接指向判断网页的关联程度。1998年,Kleinberg[8]提出HITS算法,该算法通过权威和枢纽两个维度衡量页面的价值。若只使用网络链接关系判断网页的关键性而不去判断文本内容,可能导致爬行结果与主题无关,所以一般不单独使用基于链接的爬取策略。
在这里插入图片描述

2.2 国内研究现状

相比于国外,我国对主题网络爬虫的研究起步虽晚于国外,但也取得了不少成果。
萧婧婕等设计出基于灰狼算法,旨在解决爬虫在全局爬取中的优先级问题,从而提高爬取的查全率和查准率,能爬取更多网页;蒋宗礼等把SVM、语义分析技术及贝叶斯结合,提高了主题相关度判断;陈千提出了一种改进的best-first策略,该方法将VSM模型和贝叶斯分类器结合,能够预测待爬行链接,从而提高网页收获率。为提高爬取性能,胡萍瑞依据URL的特征和站点特点,设计了基于URL模式集的主题爬虫。实验证明,该爬虫能快速判断爬取页面的相关度,保证了爬取的召回率和准确率。刘林等认为并不是网页的所有URL都与主题有关,因而有必要先通过链接分析过滤掉无关链接,实验表明该方法极大提高了爬行速度;孟竹借助点对互信息(PMI)与词向量模型,判断新的网页链接与主题相关度;熊忠阳等提出基于信息自增益的主题爬虫,该策略在爬行过程中自动更新;白鹤基于数据抽取器构建了一个分布式主题爬虫系统,该系统使用分类标注方法克服了多个主题的兼容问题。针对主题词汇不够细化、未考虑语义词意义延伸等问题,孙红光等采用LDA(Latent Dirichlet Allocation,LDA)模型,基于语义相似度计算模型,引入语义信息的相似度计算模型(SVSM)设计了语义聚焦爬虫(ESVSM)。实验证明,该算法相关网页数量和平均相关度都高于其它算法,抓取精度高达85%;方启明等通过在配置文件里定义目标网站的范围和类型,实现可定制主题爬虫。网页链接权威评估方法主要采用PageRank算法、Hits算法以及基于它们的改进算法,Hits主要应用于特定领域排序,PageRank算法则用于全局排序。

3 网络爬虫关键技术

3.1 网页获取

网络爬虫的基本原理是模拟浏览器进行 HTTP 请求,爬虫 客户端通过 HTTP 请求向 Web 服务器发送请求,获取服务器 端的响应后下载网页,完成爬虫系统爬取工作。目前比较常用的发起网络请求的Python库有urllib2,httplib,requests。

3.2 网页解析

在网页中提取内容一般使用两种方式,一是利用正则表达式做匹配,二是使用现成的解析工具。
正则表达式的功能强大,但对于复杂的网页并不友好。Python 中的解析网页的工具有lxml与BeautifulSoup

4 存在的主要问题

速度限制
速度限制是对抗爬虫的一种常见的方法,它的工作方式很简单:网站强制用户可以从单个IP地址执行有限数量的操作。限制可能因网站而异,并基于在特定时间段内执行的操作数量或用户使用的数据量。
验证码提示
验证码是另一种更复杂的限制网络抓取的方法。用户可以通过在短时间内发出过多请求、未正确覆盖网络抓取工具的指纹,或使用低质量的代理方式触发验证码。
网站结构变化
网站并不是一成不变的,尤其是当用户爬取大型网站时,站点经常更改 HTML 标记,以此破坏用户的网络抓取脚本。例如网站可以删除或重命名某些类或元素 ID,这将导致用户的解析器停止工作。
网站使用JavaScript运行
如今许多网站的功能都需要通过用户点击某些区域使得JavaScript代码运行才能正常使用,对于爬虫程序而言常规的提取工具不具备处理动态页面的功能,所以在爬取这类网站时会遇到较大的阻碍。
加载速度慢
当网站在短时间内收到大量请求时,其加载速度可能会变慢并变得不稳定。而在网站不稳定时爬虫程序会更快的进行刷新,但这只是雪上加霜,网站会中断抓取器,以确保站点不会崩溃。
IP受限制
可能导致用户爬虫IP受限的因素有很多,例如用户使用的数据中心代理IP被网站识别、用户爬虫爬取速度过快被封禁等等。在遭遇这种问题时,用户可以选择使用动态爬虫代理,使得自己每次访问都使用不同的IP地址,以此来确保IP不被限制,爬虫高效爬取。

5 研究趋势

主题网络爬虫研究主要集中在搜索策略、网页抓取优 先级设计、主题爬虫系统设计 3 大领域。目前主题网络爬 虫研究不断进步,但有待深入研究的问题如下:

(1)当前,基于网页内容的主题网络爬虫搜索策略研 究方向是使用成熟的文本分类法对网页中的文本进行分类,忽略了网页结构影响主题相关度等问题,同时,网页是 否进行去噪处理直接影响到主题的判断精度,因此对网页 去噪研究有待提升。此外,该策略未考虑到互联网信息随 时发生变化的情况,因网页未及时更新导致抓取到的信息 可能已经过时。

(2)站点的质量越高,URL 就越规范,则基于链接的主 题网络爬虫的主题判断精确度越高;当网站的 URL 路径不 规范时,基于链接的主题网络爬虫判断精确度就会降低。

(3)现阶段,主要的网页链接分析是 PageRank 和 Hits 算法 ,有些使用了 SALSA 和 Hilltop 算法,在链接分析方 面有良好效果。目前,搜索引擎查询首要采用链接分析算 法,假如将链接分析算法用于主题网络爬虫搜索策略以确 定网页抓取优先级,则会大大提高主题网络爬虫的信息提取和网页搜索性能。

6 结语

随着人们的个性化信息需求不断加大,主题网络爬虫成为搜索引擎领域研究热点。其中,主题网络爬虫研究重点是网页抓取优先级、爬行策略以及设计实现主题网络爬虫系统3大领域。本文先给出主题网络爬虫的定义和基本原理,然后对国内外主题网络爬虫研究发展状况进行分析和系统梳理,探讨了网络爬虫实现所需要的关键技术,并给出目前研究中存在的问题以及进一步研究的方向。希望有更多学者关注、加入到主题网络爬虫研究实践中,共同推动主题网络爬虫研究健康快速发展。

在这里给大家分享一些免费的课程供大家学习哦,下面是课程里面的截图,下方的二维码里有更多的课程。点击蓝色字体也可以添加哦~点击这里

1.Python所有方向的学习路线

在这里插入图片描述

2.学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
在这里插入图片描述

三、学习资料在这里插入图片描述

四、实战资料

实践是检验真理的唯一标准。这里的压缩包可以让你再闲暇之余帮你提升你的个人能力。在这里插入图片描述

五、视频课程在这里插入图片描述

好啦今天的分享就到这里结束了,快乐的时光总是短暂呢,想学习更多课程的小伙伴不要着急,有更多惊喜哦~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值