我已使用wget下载了以下页面并将其保存在f.html
中现在我想在C#中使用HtmlAgilityPack加载此页面进行解析。使用此代码段
var webGet = new HtmlWeb();
var document = webGet.Load("f.html");
第二行抛出此错误
A first chance exception of type 'System.UriFormatException' occurred in System.dll
解决方案是什么?
答案 0 :(得分:2)
我手头没有编译器,但我认为"f.html"
不是一个结构良好的Uri。它缺乏架构和域。
正确的uri应该像"http://the.domain.name/f.html"
。
答案 1 :(得分:0)
尝试以下方法:
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));