2016-03-25 31 views
4

"Küçük" bir sorun htmlagilitypack (HAP) var.HTML verilerini htmlagilitypack kullanarak https URL'den indiremiyor

An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: 'gzip' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

Web sitesinden veri almak için bu kod parçası kullanıyorum: Ben o olsun bu kodu sonra

HtmlWeb page = new HtmlWeb(); 
var url = "https://kat.cr/"; 
var data = page.Load(url); 

Bir web sitesinden veri almak için çalıştım bu hatayı alıyorum hata. Google'dan her şeyi denedim ama hiçbir şey yardımcı olmadı.

Birisi bu sorunu nasıl çözeceğimi söyleyebilir mi?

Eğer

cevap

3

HtmlWeb https indirirken desteklemiyor ederiz. Bunun yerine, otomatik olarak GZip sıkıştırmasını a bit of modification ile WebClient kullanabilirsiniz:

class MyWebClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest; 
     request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 
     return request; 
    } 
} 

Sonra HtmlDocument.LoadHtml() kullanmak HTML dize adresinin HtmlDocument örneği doldurmak için:

var url = "https://kat.cr/"; 
var data = new MyWebClient().DownloadString(url); 
var doc = new HtmlDocument(); 
doc.LoadHtml(data); 
+0

Yardımlarınız için teşekkürler, işe yaradı. Şimdi bir sorum daha var, şöyle bir şeyim var: '// * [@ id = \" torrent_age_of_ultron11227701 \ "]/td/div/div/a // * [@ id = \" torrent_age_of_ultron11227702 \ " ]/td/div/div/a // * [@ id = \ "torrent_age_of_ultron11227731 \"]/td/div/div/a // * [@ id = \ "torrent_age_of_ultron11227755 \"]/td/div/div/bir // * [id = \ "torrent_age_of_ultron11227766 \" @]/td/div/div/a // * [id @ = \ "torrent_age_of_ultron112277771 \"]/td/div/div/a' XPATH: '// * [@ id = \" torrent_age_of_ultron (burada bir regex gibi) \ "]/td/div/div/a ' –

+0

@ValentinPifu XPath 1.0'ı almak için herhangi bir komut var. kaput regex'i desteklemez. Belki XPath 'başlar-with()' işlevi yeterli mi? Her neyse, bu orijinal sorudan tamamen farklı bir konu. Bu yüzden, bir çözüm bulamazsanız, başka bir soru göndermeyi öneririm. Teşekkürler – har07

4

Sen isteği müdahale edebilir değiştirmek için HtmlWeb kullanırken Gereksinimlerinize göre.

var page = new HtmlWeb() 
{ 
    PreRequest = request => 
    { 
    // Make any changes to the request object that will be used. 
    request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 
    return true; 
    } 
}; 

var url = "https://kat.cr/"; 
var data = page.Load(url); 
+0

işe yaradı ... çok teşekkür ederim. – Nani