如何从网站执行所有http链接?

时间:2014-08-27 12:22:53

标签: c# httpclient httpcontent

我有一个在C#上编写程序的任务,它可以从网站上找到所有的http链接。现在我为它写了一个这样的函数:

async static void DownloadWebPage(string url)
{
  using (HttpClient client = new HttpClient()) 
  using (HttpResponseMessage response = await client.GetAsync(url))
  using (HttpContent content = response.Content)
  {
    string[] resArr;
    string result = await content.ReadAsStringAsync();
    resArr = result.Split(new string[] {"href"}, StringSplitOptions.RemoveEmptyEntries);//splitting

    //here must be some code-string which finds all neccessary http-links from resArr

    Console.WriteLine("Main page of " + url + " size = " + result.Length.ToString());
  }
}

使用此函数我将网页内容加载到字符串,然后我解析此字符串并使用“href”-splitter将结果写入数组,然后检查字符串上的每个数组单元,其内容为“href” substring。所以我可以获得字符串,其中包含http-links。问题在字符串分裂时开始,因为无法找到http-links,在我看来这是由于这个字符串的内容格式。如何修复它?

1 个答案:

答案 0 :(得分:0)

我曾做过类似的事情。我的解决方案是以适合xml规则的方式更改html。 (这可能是这个解决方案的问题,我相信我的html在某种程度上是预定义的,所以我只需要改变一些我知道不是xml符合html的东西)

在此之后,您可以简单地搜索" a" -nodes并阅读href参数。

不幸的是,我不能再找到我的代码了,很久以前。