HtmlAgilityPack в C # показывает «Первое случайное исключение типа« System.UriFormatException »произошло в System.dll» - PullRequest
0 голосов
/ 26 февраля 2012

Я скачал следующую страницу с помощью wget и сохранил ее в формате f.html

http://www.ebay.com/sch/i.html?_nkw=gruen&_in_kw=1&_ex_kw=sara+quartz+embassy+bob+robert+elephants+adidas&_sacat=See-All-Categories&_okw=gruen&_oexkw=sara+quartz+embassy+bob+robert+elephants+adidas&_adv=1&_udlo=&_udhi=&_LH_Time=1&_ftrt=903&_ftrv=24&_sabdlo=&_sabdhi=&_samilow=&_samihi=&_sadis=200&_fpos=Zip+code&_fsct=&LH_SALE_CURRENCY=0&_sop=12&_dmd=1&_ipg=50

Теперь я хочу загрузить эту страницу для анализа с использованием HtmlAgilityPack в C #. Используя этот фрагмент кода

var webGet = new HtmlWeb();
var document = webGet.Load("f.html");

Вторая строка выдает эту ошибку

A first chance exception of type 'System.UriFormatException' occurred in System.dll

Какое решение ??

Ответы [ 2 ]

2 голосов
/ 26 февраля 2012

У меня нет компилятора под рукой, но я полагаю, что "f.html" не является правильно сформированным Uri. Не хватает схемы и домена.

Правильный URI должен быть похож на "http://the.domain.name/f.html".

0 голосов
/ 26 февраля 2012

Попробуйте следующее:

var url = "http://www.ebay.com/sch/i.html?_nkw=gruen&_in_kw=1&_ex_kw=sara+quartz+embassy+bob+robert+elephants+adidas&_sacat=See-All-Categories&_okw=gruen&_oexkw=sara+quartz+embassy+bob+robert+elephants+adidas&_adv=1&_udlo=&_udhi=&_LH_Time=1&_ftrt=903&_ftrv=24&_sabdlo=&_sabdhi=&_samilow=&_samihi=&_sadis=200&_fpos=Zip+code&_fsct=&LH_SALE_CURRENCY=0&_sop=12&_dmd=1&_ipg=50";
var document = new HtmlDocument();
document.LoadHtml(new WebClient().DownloadString(url));

Если вы хотите загрузить его из локального файла, попробуйте:

var file = "f.html";
var document = new HtmlDocument();
document.LoadHtml(File.ReadAllText(file));
...