65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的 Web Spider 库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.28/5 (34投票s)

2006年9月10日

CPOL

2分钟阅读

viewsIcon

270488

downloadIcon

15459

一篇关于爬虫库以抓取网站并将其存储在本地的文章

Sample Image - ZetaWebSpider.png

别害怕,这只是一个网络蜘蛛 ;-)

引言

今天,在查看一些旧代码时,我发现了一组我在今年年初为一个客户项目编写的类。

这些类实现了一个基本的网络蜘蛛(也称为“网络机器人”或 "网络爬虫”),用于抓取网页(包括图像和 CSS 等资源),将它们下载到本地,并调整任何资源超链接以指向本地下载的资源。

虽然这篇文章不是一篇包含详细解释的完整文章,正如我通常喜欢写的那样,但我仍然想通过这篇文章将代码发布到网上。也许有些读者仍然可以从这段代码中获取一些想法,并将其作为自己项目的起点。

概述

这些类允许同步和异步下载网页,允许指定多个选项,例如要遵循的超链接深度和代理设置。

下载的资源会获得基于原始 URL 的哈希码的新文件名。我这样做是为了简化(对我作为程序员而言)。

为了解析文档,我正在使用来自 GotDotNet 网站的 SGMLReader DLL。

此外,由于我不需要它来完成项目,因此该库关心“robots.txt”或节流或其他功能。

Using the Code

这篇文章的下载包含库(“WebSpider”)和一个测试控制台应用程序(“WebSpiderTest”)。测试应用程序相当短,应该很容易理解。

基本上,您需要创建一个 WebSiteDownloaderOptions 类的实例,配置几个参数,创建一个 WebSiteDownloader 类的实例,可选地连接事件处理程序,然后告诉该实例同步或异步处理给定的 URL。

历史

  • 2007-09-17: 修复了几个问题
  • 2006-09-10: 文章的初始发布
© . All rights reserved.