错误“对象引用未设置为对象的实例”

时间:2015-06-24 01:08:38

标签: c# parsing

此代码可以与其中一个网站一起使用,但有些网站会回复这样的错误信息,我不知道如何编辑(星星错误)

var document = webBrowser1.Document;
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)document.DomDocument;
var htmlString = documentAsIHtmlDocument3.documentElement.innerHTML;

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);

// Sử dụng node để lấy tin
HtmlNodeCollection texts = doc.DocumentNode.SelectNodes("//div[@id='footer']/p");
string kq = "";

// cho vòng lặp để lấy kết quả
foreach (var item in texts)
{
    kq += item.InnerText + Environment.NewLine;
}

richTextBox1.Text = kq;

HTML code:

<div id="divTop" >
    <div id="text-conent" style="width: 500px; float: right;"></div>
    <div id="grid" style="margin-removed 505px; height: 700px;"></div>
</div>

1 个答案:

答案 0 :(得分:0)

似乎在成功的网页上存在div id footer

但是在其他失败的网页上没有这样的div。

因此,似乎您的逻辑可能需要更改以使doc.DocumentNode.SelectNodes的搜索表达式更加宽容。

或者创建一些在原始版本失败时可以使用的搜索字符串:

if(texts == null){
    texts = doc.DocumentNode.SelectNodes("some other search string");
}