作为一个互联网的技术开发,爬虫不管是自己写的还是所负责的网站被爬,都是挺常见的。
但是一个很常见的东西,却一直没有系统梳理过,今天我们从发展历史,价值,问题和应对恶意爬虫的策略来聊一聊爬虫。
1 爬虫发展历史
爬虫的发展历史伴随着搜索引擎的发展和大的搜索引擎公司的崛起,按时间线,大概分为三个阶段:
1.1 90 年代的早期爬虫
早期的爬虫主要用于收集网页链接、测量互联网规模或提供搜索服务。它们的目标相对简单明确。它们基于文本的抓取和索引,大多数是单线程和顺序抓取,有着简单的去重策略和有限的抓取规模,且当时对爬虫行为的限制较少。以下为一些早期爬虫:
- World Wide Web Wanderer(1993 年):由麻省理工学院的 Matthew Gray 开发,World Wide Web Wanderer 是最早的网络爬虫之一。其是用 Perl 语言实现,最初的目的是测量互联网的规模,但随后它也开始收集网页的 URL,并将这些 URL 存储在名为 Wandex 的数据库中。
- JumpStation(1993 年):Jonathon Fletcher 开发的 JumpStation 是一个早期的搜索引擎,被认为是世界上第一个网络搜索引擎,它使用一个基于爬虫的方法来收集链接并生成索引。JumpStation 利用简单的文本匹配技术来检索网页,并提供了一个基本的搜索界面。
- RBSE (Rice-Based Search Engine):全名为 Rice-Based Search Engine,是由 Rice University 的 Ramin Zabih 和 Justin Boyan 开发的。RBSE 是一个基于网络爬虫的搜索引擎,它使用了一种名为'backward link crawling'的方法进行网络抓取。该方法首先找到某个已知的相关网页,然后通过跟踪这个网页的反向链接(即指向该网页的其他网页)来查找更多的相关内容。
- WebCrawler(1994 年):WebCrawler 是由 Brian Pinkerton 开发的,它是第一个全文搜索引擎。WebCrawler 使用爬虫抓取网页,并将收集到的数据存储在索引服务器上。用户可以通过搜索关键词找到相关网页。
- Lycos(1994 年):Lycos 是另一个使用爬虫技术的搜索引擎,由卡内基梅隆大学的 Michael Mauldin 开发。Lycos 成为了当时最大的搜索引擎之一,提供了更先进的搜索功能和更大的索引。
1.2 搜索引擎时代的爬虫(90 年代末至 2000 年代初)
与早期爬虫相比,搜索引擎时代的爬虫已经支持了分布式抓取,支持多种文件类型和媒体格式,需要采用更复杂的网页解析技术,并且要遵守网站抓取规则,另外,在去重,索引和隐私保护等方面有了长足的进步。此时的爬虫,共同致力于提供更快速、更准确、更全面的搜索结果,满足用户不断增长的信息需求。以下为一些示例:
- Scooter(1995 年):Scooter 是用于 AltaVista 公共搜索引擎的网络爬虫,AltaVista 曾声称 Scooter 是「当今最快的网络爬虫」。它负责抓取和索引网页以构建 AltaVista 的搜索结果。
- Yandex Bot(1997 年):Yandex Bot 是俄罗斯搜索引擎 Yandex 的网络爬虫。它通过抓取和索引网页来构建 Yandex 的搜索结果。Yandex 使用了一种称为 MatrixNet 的机器学习算法来评估网页的质量和相关性。
- Googlebot(1998 年):Googlebot 与 Google 搜索引擎一起诞生。Google 的创始人拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)于 1996 年开始研究他们的搜索引擎项目,最终在 1998 年正式推出 Google 搜索引擎。Googlebot 是 Google 搜索引擎的网络爬虫。它按照一定的算法和策略抓取互联网上的网页,用于构建 Google 的搜索索引。Googlebot 使用了一种称为 PageRank 的链接分析算法来评估网页的相关性和重要性。
- Bingbot(2006 年):Bingbot 是微软旗下搜索引擎 Bing 的网络爬虫。它通过抓取和索引网页来构建 Bing 的搜索结果。Bingbot 采用了一种称为 TrustRank 的算法来评估网页的质量和可信度。
- Baiduspider(2000 年):Baiduspider 是中国搜索引擎百度的网络爬虫。它负责抓取和索引互联网上的中文网页,用于构建百度的搜索结果。百度爬虫使用了一种称为 LinkRank 的链接分析算法。
- DuckDuckBot(2008 年):DuckDuckBot 是以隐私保护著称的搜索引擎 DuckDuckGo 的网络爬虫。虽然 DuckDuckGo 在很大程度上依赖于其他搜索引擎的结果,但它也使用自己的爬虫来抓取和索引网页。
1.3 现代爬虫
随着互联网的快速发展,爬虫技术也在不断进步。一方面,搜索引擎公司继续改进爬虫技术,以提高搜索结果的质量和速度。另一方面,爬虫技术已经成为数据挖掘、竞争情报和市场研究等领域的重要工具。


