C#Screen Scraper - 处理长uri的

时间:2009-08-19 10:27:04

标签: c# screen-scraping

我正在构建一个html屏幕抓取工具,它解析网址,然后将其与一组其他网址进行比较。

与Uri.AbsoluteUri或Uri.Host进行比较。

我的问题是,当我创建一个新的Uri(新的Uri(url))时,当url为long或包含多个斜杠时会抛出UriFormatException。

由于我的预定义网址集包含多个(到)长网址,因此我不能仅使用子字符串来获取网址的一部分。

处理此问题的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用Uri.TryCreatenew之前检查URI是否有效。

你不应该在网址上得到例外这么短。以下程序在VS2008上运行良好:

static void Main(string[] args)
{
    Uri uri = new Uri("http://stackoverflow.com/questions/1298985/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/");
    Uri uri2 = new Uri("http://stackoverflow.com/questions/1298985/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/");
    Console.ReadLine();
}