C# 中的 Web Spider 库
一篇关于爬虫库以抓取网站并将其存储在本地的文章
别害怕,这只是一个网络蜘蛛 ;-)
引言
今天,在查看一些旧代码时,我发现了一组我在今年年初为一个客户项目编写的类。
这些类实现了一个基本的网络蜘蛛(也称为“网络机器人”或 "网络爬虫”),用于抓取网页(包括图像和 CSS 等资源),将它们下载到本地,并调整任何资源超链接以指向本地下载的资源。
虽然这篇文章不是一篇包含详细解释的完整文章,正如我通常喜欢写的那样,但我仍然想通过这篇文章将代码发布到网上。也许有些读者仍然可以从这段代码中获取一些想法,并将其作为自己项目的起点。
概述
这些类允许同步和异步下载网页,允许指定多个选项,例如要遵循的超链接深度和代理设置。
下载的资源会获得基于原始 URL 的哈希码的新文件名。我这样做是为了简化(对我作为程序员而言)。
为了解析文档,我正在使用来自 GotDotNet 网站的 SGMLReader DLL。
此外,由于我不需要它来完成项目,因此该库不关心“robots.txt”或节流或其他功能。
Using the Code
这篇文章的下载包含库(“WebSpider
”)和一个测试控制台应用程序(“WebSpiderTest
”)。测试应用程序相当短,应该很容易理解。
基本上,您需要创建一个 WebSiteDownloaderOptions
类的实例,配置几个参数,创建一个 WebSiteDownloader
类的实例,可选地连接事件处理程序,然后告诉该实例同步或异步处理给定的 URL。
历史
- 2007-09-17: 修复了几个问题
- 2006-09-10: 文章的初始发布