我有一个在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,在我看来这是由于这个字符串的内容格式。如何修复它?
答案 0 :(得分:0)
我曾做过类似的事情。我的解决方案是以适合xml规则的方式更改html。 (这可能是这个解决方案的问题,我相信我的html在某种程度上是预定义的,所以我只需要改变一些我知道不是xml符合html的东西)
在此之后,您可以简单地搜索" a" -nodes并阅读href参数。
不幸的是,我不能再找到我的代码了,很久以前。