2017-05-18 2 views
0

HTML Agility 팩을 사용하여 Wikipedia에서 간단한 화면 긁기를 시도하고 있습니다. https://en.wikipedia.org/wiki/Nanticoke%2c_Pennsylvania < - 브라우저에서 작동 그러나이 코드를 사용할 때 WebClient 클래스에서 잘못된 경로 문자 예외가 발생합니다.WebClient URL 인코딩 후에도 위키 피 디아가 잘못된 경로 문자

원래 주소 : https://en.wikipedia.org/wiki/Nanticoke,_Pennsylvania

업데이트 - 예외를 throw하지 않습니다 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 
+0

질문을 편집하여 a) 생성 된 실제 URL과 b) 실제로 발생한 예외를 표시 할 수 있습니까? – stuartd

+0

인코딩 후 실제 URL을 게시하지 않았습니다. 또한'html.Load'에서'client.DownloadString'을 옮기고 그것을 문자열 변수에 대입하면 URL에 문제가 있는지 아니면 Wikipedia의 응답으로 인해 HAP에 예외가 발생하는지 실제로 판단 할 수 있습니다 – ColinM

+0

로드 걸리기 원시 HTML이 아닌 URL. LoadHtml을 사용하여 문자열에서 html을로드하십시오. –

답변

0

. Load는 웹 사이트를 끌어 내려고 시도합니다. LoadHtml은 이미로드 된 내용을 제외하고 있습니다.

html.LoadHtml(content);