我目前正在使用C#4.0編寫的scraper。我使用各種工具,包括.NET的內置WebClient和RegEx功能。對於我的刮板的一部分,我使用HtmlAgilityPack解析HTML文檔。我根據需要讓所有的東西都能正常工作,並完成了一些代碼的清理工作。使用HtmlEntity.DeEntitize()方法的KeyNotFoundException
我正在使用HtmlEntity.DeEntitize()
方法來清理HTML。我做了一些測試,這個方法似乎很好。但是當我在我的代碼中實現該方法時,我一直在獲取KeyNotFoundException
。沒有進一步的細節,所以我很迷茫。我的代碼如下所示:
WebClient client = new WebClient();
string html = HtmlEntity.DeEntitize(client.DownloadString(path));
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
下載的HTML格式爲UTF-8編碼。我如何解決KeyNotFound
異常?
出於好奇,我想這些案件'HttpUtility.HtmlDecode」,它才處理‘â’ – Setsu
@Setsu的最後一種情況 - 我沒有嘗試每個字符。基於我的輸入文本(僅羅馬尼亞語),我知道一組有問題的字符並將它們全部放在函數中。但是,應該根據需要進行調整。這不是一個體面的解決方案,但它使HtmlAgillityPack能夠在事後發揮它的魔力。 – Alexei
也許我錯了,但我認爲你誤解了我的評論意思。 'HttpUtility.HtmlDecode'存在於'System.Web'命名空間中,由框架提供,而不是HtmlAgilityPack。我只是好奇,看看它是否處理了這些案件。 – Setsu