WebClient维基百科非法路径字符甚至在url编码后

时间:2017-05-18 16:34:17

标签: c# webclient screen-scraping wikipedia

我正在尝试使用HTML Agility包从Wikipedia进行简单的屏幕抓取。我复制了在我的浏览器中工作的正确链接的格式https://en.wikipedia.org/wiki/Nanticoke%2c_Pennsylvania< - 在浏览器中工作 但是,当使用此代码时,我从WebClient类中获取非法路径字符异常。

原始地址:https://en.wikipedia.org/wiki/Nanticoke,_Pennsylvania

更新 - 在调用html.Load()之前将网站下载到字符串变量不会抛出异常。我在html.Load()

上获得了非法的路径字符

异常数据:enter image description here

var client = new WebClient();
var address = $"https://en.wikipedia.org/wiki/{HttpUtility.UrlEncode($"{name},_{state}")}";

HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();
html.Load(client.DownloadString(address)); //Exception thrown here

1 个答案:

答案 0 :(得分:0)

我使用了错误的方法。加载将尝试拉低网站,LoadHtml除了已加载的内容。

html.LoadHtml(content);