网页qq抓取什么原理(2.1.1的工作原理和爬虫框架流程(一)的作用)
优采云 发布时间: 2022-04-04 00:09网页qq抓取什么原理(2.1.1的工作原理和爬虫框架流程(一)的作用)
以下是我的毕业设计《搜索引擎的工作原理》部分内容的第二章。第一章是介绍,我就不用放了。因为是论文,所以写的有点雄辩……
2 搜索引擎如何工作2.1 搜索引擎爬虫
不同的搜索引擎对爬虫有不同的通用名称。比如百度的爬虫叫“baiduspider”,谷歌的叫“googlebot”。爬虫的作用:目前互联网上有数百亿的网页。爬虫需要做的第一件事就是将如此海量的网页数据下载到本地的服务器上,在本地形成互联网页面的镜像备份。这些页面在本地传输后,通过一些后续的算法过程进行处理,呈现在搜索结果上。
2.1.1 搜索引擎爬虫框架
一般的爬虫框架流程是:首先从大量的互联网页面中抓取一些高质量的页面,提取其中收录的url,将这些url放入待爬的队列中,爬虫依次读取队列中的url,并通过DNS解析,将这些url转换成网站对应的IP地址,网页下载器通过该IP地址下载页面的所有内容。
对于已经下载到本地服务器的页面,一方面等待索引和后续处理;另一方面,这些下载的页面会被记录下来,以避免再次被爬取。
对于刚刚下载的页面,从页面中抓取该页面中收录的未爬取的URL,放入待爬取队列中。在后续的爬取过程中,会下载该URL对应的页面内容。如果获取队列为空,则完成一轮获取。如图所示:
图 2-1
当然,在当今互联网信息海量的时代,为了保证效率,爬虫一般都是连续工作的。
因此,从宏观的角度,我们可以理解互联网的页面可以分为以下5个部分:
a) 下载页面的集合
b) 过期页面的采集
c) 要下载的页面集合
d) 已知的页面集合
e) 不可知的页面集合
当然,为了保证页面质量,上述爬虫的爬取过程中还涉及到很多技术手段。
2.1.2 搜索引擎爬虫的分类
大部分搜索引擎爬虫系统都是按照上述流程工作的,但是不同搜索引擎的爬虫会有所不同。另外,同一个搜索引擎的爬虫有各种分类。按功能分类:
a) 批量爬虫
b) 增强爬虫
c) 垂直履带
百度搜索引擎按产品分类如下:
a) 网络搜索百度蜘蛛
b) 无线搜索Baiduspider-mobile
c) 图片搜索Baiduspider-image
d) 视频搜索Baiduspider-video
e) 新闻搜索Baiduspider-news
f) 百度搜藏Baiduspider-favo
g) 百度联盟Baiduspider-cpro
h) 手机搜索百度+转码器
2.1.3 搜索引擎爬虫的特点
由于互联网信息量巨大,数据庞大,搜索引擎必须拥有优秀的爬虫才能完成高效的爬取过程。
a) 高性能
搜索引擎爬虫的高性能主要体现在单位时间内可以下载多少网页。互联网上的网页数量浩如烟海,网页的下载速度直接关系到工作效率。另外,程序访问磁盘的操作方式也很重要,所以高性能的数据结构对爬虫的性能也有很大的影响。
b) 稳健性
因为蜘蛛需要爬取的互联网页面数量非常多,虽然下载速度很快,但是完成一次爬取过程仍然需要很长时间,所以蜘蛛系统需要能够灵活增加服务器数量和爬虫。提高小效率。
c) 友善
爬行动物的友善主要体现在两个方面。
一方面要考虑到网站服务器的网络负载,因为不同服务器的性能和承载能力是不一样的,如果蜘蛛爬的压力过大,导致DDOS攻击的影响,可能会影响网站的访问,所以蜘蛛在爬网时需要注意网站的负载。
另一方面,要保护网站的隐私,因为并不是互联网上的所有页面都允许被搜索引擎蜘蛛抓取和收录,因为其他人不想要这个页面被搜索引擎收录搜索到,以免被互联网上的其他人搜索到。
限制蜘蛛爬行的方法一般有以下三种:
1) 机器人排除协议
网站版主在网站根目录下制定了robots.txt文件,描述了网站中哪些目录和页面不允许百度蜘蛛抓取
一般robots.txt文件格式如下:
用户代理:baiduspider
禁止:/wp-admin/
禁止:/wp-includes/
user-agent 字段指定爬虫禁止字段针对哪个搜索引擎指定不允许爬取的目录或路径。
2) 机器人元标记
在页面头部添加网页禁止标签,禁止收录页面。有两种形式:
这个表单告诉搜索引擎爬虫不允许索引这个页面的内容。
这个表单告诉爬虫不要爬取页面中收录的所有链接
2.1.4 爬取策略
在整个爬虫系统中,待爬取队列是核心,所以如何确定待爬取队列中URL的顺序至关重要,除了前面提到的,新下载的页面中收录的URL会自动追加到除了队列末尾的技术,很多情况下还需要使用其他技术来确定要爬取的队列中URL的顺序,所有的爬取策略都有一个基本的目标:首先爬取重要的网页。
常见的爬虫爬取策略有:广度优先遍历策略、不完全pagerank策略、OPIC策略和大站点优先策略。
2.1.5 网页更新政策
该算法的意义在于互联网上的页面多,更新快,所以当互联网上的一个页面内容更新时,爬虫需要及时重新抓取该页面,并重新展示索引后给用户,否则很容易让用户搜索引擎搜索结果列表中看到的结果与实际页面内容不匹配的情况。常见的更新策略有三种:历史参考策略、用户体验策略、集群抽样策略。
a) 历史参考策略
历史参考策略很大程度上依赖于网页的历史更新频率,根据历史更新频率判断一个页面未来的更新时间来指导爬虫的工作。更新策略也是根据一个页面的更新区域来判断内容的更新。例如,网站 的导航和底部通常不会改变。
b) 用户体验策略
顾名思义,这个更新策略是和用户体验数据直接相关的,也就是说,如果一个页面被认为不重要,那么以后更新它是没有关系的,那么如何判断一个页面的重要性呢?因为爬虫系统和搜索引擎的排名系统是相对独立的,当一个页面的质量发生变化时,其用户体验数据也会随之变化,从而导致排名发生变化。从那时起,将判断页面的质量。更改,即对用户体验有更大影响的页面,应该更新得更快。
c) 整群抽样策略
上述两种更新策略有很多限制。为互联网上的每个网页保存历史页面的成本是巨大的。另外,第一次抓取的页面没有历史数据,因此无法确定更新周期。,所以整群抽样策略很好地解决了上述两种策略的弊端。即每个页面根据其属性进行分类,同一类别的页*敏*感*词*有相似的更新周期,因此根据页面的类别确定更新周期。
对于每个类别的更新周期:从各个类别中提取代表页面,根据前两种更新策略计算更新周期。
页面属性分类:动态特征和静态特征。
静态特征一般是:页面内容的特征,如文本、大小、图片大小、大小、链接深度、pagerank值、页面大小等。
动态特征是静态特征随时间的变化,比如图片数量的变化、文字数量的变化、页面大小的变化等等。
聚类抽样策略看似粗略和泛化,但在实际应用中,效果优于前两种策略。
下一章:浅析搜索引擎的索引过程