Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HtmlAgilityPack HtmlDocument.Load throws exception "object not set to an instance"

var uri = new Uri("http://store.scrapbook.com/cos-pad825.html?t12-13=cosmo%20cricket&date=20110309");
var request = (HttpWebRequest)WebRequest.Create(url);
var cookieContainer = new CookieContainer();

request.CookieContainer = cookieContainer;
request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
request.Method = "GET";
request.AllowAutoRedirect = true;
request.Timeout = 15000;

var response = (HttpWebResponse)request.GetResponse();
var page = new HtmlDocument();
var stream = response.GetResponseStream();
page.Load(stream);

Causes an error. on the Load(stream) call. Any ideas?

like image 475
Adrian Adkison Avatar asked Dec 03 '25 18:12

Adrian Adkison


1 Answers

The error I get when I run your code is:

System.ArgumentException: 'ISO-8559-1' is not a supported encoding name.

It's thrown by the standard .NET Framework encoding classes. It means the page declares an encoding not supported by .NET. I fixed it like this:

var page = new HtmlDocument();
page.OptionReadEncoding = false;

PS: I'm using the Html Agility Pack version 1.3

like image 66
Simon Mourier Avatar answered Dec 05 '25 09:12

Simon Mourier



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!