2015-06-24 201 views
0

此代碼可以與其中一個網絡一起使用,但有些網站會將其返回到類似此類的錯誤消息,我不知道如何編輯(錯誤在星號中)錯誤「對象引用未設置爲對象的實例」

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代碼:

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

的'代碼PHP:'部分似乎是斷章取義,並沒有帶來任何的問題。 – RossBille

+0

可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – HimBromBeere

回答

0

似乎在哪裏,這是成功的頁面存在dividfooter

但在其他頁面上,這種情況下不存在這樣的div。

因此,您的邏輯似乎可能需要更改以使搜索表達式更爲寬容。

如果你原來的失敗,或者創建幾個搜索字符串,將工作:

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

+0

但我不明白,當我使用後面的simple_html_dom獲取div標籤中的信息時,所以現在使用DocumentNode.SelectNodes返回null? include'simple_html_dom.php'; (isset($ _ GET ['date'])) { $ url ='http://10.8.32.20/Default.aspx?Menu='。 $ _GET [ '日期']; } $ html = file_get_html('http:// localhost:81/curl/thu.php'); echo''; foreach($ html-> find('div#divTop')as $ e) echo $ e-> innertext。 '
'; ?> – LongNgo08

相關問題