C#中的HtmlAgilityPack顯示“System.dll中出現類型'System.UriFormatException'的第一次機會異常”

c# html-agility-pack

我使用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+鮑勃+羅伯特+大象+阿迪達斯&_adv = 1&_udlo =&_ UDHI =&_ LH_Time = 1&_ftrt = 903&_ftrv = 24&_sabdlo =&_ sabdhi =&_ samilow =&_ samihi =&_ SADIS = 200&_fpos =郵編+代碼&_fsct =&LH_SALE_CURRENCY = 0&_sop = 12&_dmd = 1&_ipg = 50

現在我想在C#中使用HtmlAgilityPack加載此頁面進行解析。使用此代碼段

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

第二行是拋出這個錯誤

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

什麼是解決方案?

一般承認的答案

我手頭沒有編譯器,但我認為"f.html"不是一個結構良好的Uri。它缺乏架構和域。

正確的uri應該像"http://the.domain.name/f.html"


熱門答案

請嘗試以下方法:

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 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));



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因