2017-01-17 5 views
0

나는 다음과 같은 코드를 사용하여 웹 사이트의 콘텐츠에 액세스하려고 :추출 웹 사이트 일반 HTML

HttpClient httpClient = new HttpClient(); 
string htmlresult = ""; 

var response = await httpClient.GetAsync(url); 

if (response.IsSuccessStatusCode) 
{ 
    htmlresult = await response.Content.ReadAsStringAsync(); 
} 

return htmlresult; 

그것은 나에게 대신 아마도 일반 HTML을 암호화 된 문자열을 나에게주고있다 https://www.yahoo.com을 제외하고 올바른 HTML을, 제공을, 아래처럼.

‹  Ľç–ãF¶.øÿ<»Ž4Kj“ð¦ÔÒ½÷ž·îÊO0$ Úž~÷ [email protected]™U:ëNgK"bÛÄïÿõr¯4^ô 

어떻게 암호화 된 텍스트에서 간단한 html을 얻을 수 있습니까?

+1

압축 또는 인코딩되지 않았습니까? Yahoo는'Accept-Encoding : gzip, deflate, br'을 사용합니다. –

+0

이것은 정답입니다 –

답변

2

야후는 Accept-Encoding: gzip, deflate, br을 사용하므로 귀하의 사례에있는 내용은 g- 압축되어 있습니다. 코드에 대한 빠른 수정 - 자동 압축 해제 사용 :

private async Task<String> GetUrl(string url) 
{ 
    HttpClientHandler handler = new HttpClientHandler() 
    { 
     AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate 
    }; 

    HttpClient httpClient = new HttpClient(handler); 

    string htmlresult = ""; 

    var response = await httpClient.GetAsync(url); 

    if (response.IsSuccessStatusCode) 
    { 
     htmlresult = await response.Content.ReadAsStringAsync(); 
    } 

    return htmlresult; 
}