搜索引擎的网络爬虫、网页蜘蛛爬行知识分享,robots协议能阻止站点被爬吗

网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页数据,是搜索引擎的重要组成部分。映射到现实中就是:用户打开浏览器,输入URL,打开源网页。选取想要的内容,包括标题,摘要,正文等信息,存储到硬盘中的过程。在程序技术层面上就是:网络请求,抓取结构化数据,数据存储这三步。

爬虫分类

通用爬虫又称全网爬虫(Scalable Web Crawler);

聚焦爬虫(Focused Crawler);

增量式爬虫(Incremental Web Crawler)爬行尽可能新的页面;

Deep Web 爬虫(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。

爬虫抓取和更新的策略

随着网络的迅速发展,大量信息的体和数量不断增加的网站,爬虫效率不足等问题。如何高效率的提取精准信息便是搜索引擎急需解决的一项棘手问题,于是爬虫策略便应用而生:

1.深度优先策略

2.宽度优先策略

3.反向链接数策略

4.Partial PageRank策略

5.OPIC策略策略

6.大站优先策略

由于互联网是实时变化的,具有很强的动态性。策略的更新也是重中之重:

1.历史参考策略

2.用户体验策略

3.聚类抽样策略

分布式抓取

一般来说,抓取系统需要面对的是整个互联网上数以亿计的网页。单个抓取程序不可能完成这样的任务。往往需要多个抓取程序一起来处理。一般来说抓取系统往往是一个分布式的结构。

1.主从式(Master-Slave)

有一台专门的Master服务器来维护待抓取URL队列,它负责每次将URL分发到不同的Slave服务器,而Slave服务器则负责实际的网页下载工作。Master服务器除了维护待抓取URL队列以及分发URL之外,还要负责调解各个Slave服务器的负载情况。以免某些Slave服务器过于清闲或者劳累。这种模式下,Master往往容易成为系统瓶颈。

2.对等式(Peer to Peer)

所有的抓取服务器在分工上没有不同。每一台抓取服务器都可以从待抓取在URL队列中获取URL,然后对该URL的主域名的hash值H,然后计算H mod m(其中m是服务器的数量,以上图为例,m为3),计算得到的数就是处理该URL的主机编号。

robots协议

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它告诉网络蜘蛛,网站中的哪些内容是不应被网络蜘蛛获取的,哪些是可以被取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。

网站地图

Sitemap指令被很多搜索引擎支持,指定了网站Sitemaps文件的位置。Sitemaps文件包含了网站页面所在的URL的一个列表。Sitemap指令并不受User-agent指令的限制,所以它可以放在robots.txt文件中的任意位置。要注意的就是要使用网站地图指令,,并将URL的"location"值换成网站地图的地址。

总结

robots.txt只防君子不防小人。通常大的搜索引擎会识别这个元数据,不索引这个页面,以及这个页面的链出页面。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180130A1230X00?refer=cp_1026

扫码关注云+社区