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