【发布时间】:2012-11-04 15:53:30
【问题描述】:
我需要从几个网站获取信息。例如this site 从页面获取所有链接以便提取信息的最佳方法是什么。 有时需要单击一个链接以获取其中的其他链接。 我尝试了 Watin,并尝试在 Excel 2007 中使用 Web Data 选项执行相同的操作。 您能否提出一些我不知道的更好的方法。
【问题讨论】:
标签: c# excel web-scraping
我需要从几个网站获取信息。例如this site 从页面获取所有链接以便提取信息的最佳方法是什么。 有时需要单击一个链接以获取其中的其他链接。 我尝试了 Watin,并尝试在 Excel 2007 中使用 Web Data 选项执行相同的操作。 您能否提出一些我不知道的更好的方法。
【问题讨论】:
标签: c# excel web-scraping
Ncrawler 可能对深度爬行非常有用。您还可以设置 MaxCrawlDepth 以指定相同的值。
【讨论】:
看看WGet。它是一个非常强大的工具,用于挖掘单个页面或整个网站的内容。可用的选项允许您根据链接指定要遵循的深度级别、如何处理图像等静态资源、如何处理相关链接等。它还可以很好地挖掘动态生成的页面,例如由 CGI 或 ASP 提供的服务。
它在 'nix 世界中已经存在很多年了,但 executables compiled for Windows 很容易获得。
您需要使用 Process.Start 从 .NET 启动它,但随后您可以将结果通过管道传输到多个文件(模仿原始网站结构)、单个文件或通过捕获标准输出到内存中。然后您可以进行后续分析,例如提取 HREF HTML 元素(如果它只是您感兴趣的链接)或抓取您在问题中提供的链接中明显的表格数据。
我意识到这不是一个“纯粹的”.NET 解决方案,但在我看来,WGET 提供的强大功能足以弥补这一点。过去我自己也用过这种方式,正是我认为你正在尝试做的事情。
【讨论】:
我建议使用http://watin.org/。这比 wget 简单得多:-)
【讨论】: