2012-08-05 63 views
0

以下是HTML:使用XPath的屏幕抓取

<div class="CatContent"> 
<div class="LeftCon"> 
<span class="mv"></span> 
<a href="http://movies.justdial.com/movies/Mumbai.html" target="_blank" onclick="_ct("psc_Movies","hmpg");"> 
<p> 
</div> 
<div class="RightCon"> 
</div> 

我想提取h1标签,即Movies之间的文本。

什么应该是用于提取h1标记之间的文本的XPath。

这就是我努力:

Dim webGet = New HtmlWeb() 
     Dim document = webGet.Load("http://www.asadsdsad.com/") 
     Dim nodes = document.DocumentNode.SelectNodes("//*[@class='LeftCon']/a[@target='_blank']/h1") 

     Dim _table As New Data.DataTable 

     _table.Columns.Add("BusinessPIN", GetType(String)) 
     For i = 0 To nodes.Count - 1 
      Dim _newRow As Data.DataRow = _table.NewRow 
      _table.Rows.Add(nodes(i).InnerText) 
     Next 
     GridView1.DataSource = _table 
     GridView1.DataBind() 
     MsgBox(GridView1.Rows.Count) 

我已经尝试了许多变化,但我总是得到“System.NullReferenceException:未将对象引用设置到对象的实例”

+0

的InnerText属性在你的HTML文件,然后得到的文字,我不看到任何'class'属性的值为'PopCat'的元素,就像你试图在你的XPath表达式中选择的那样。 – 2012-08-05 15:13:23

+0

Sorr ...这是一个错误...我已经更新了这个问题 – user1150440 2012-08-05 15:20:56

+0

HTML文档是否用名称空间声明? – 2012-08-05 15:23:53

回答

1

什么应该是XPath提取h1 标签之间的文本。

//h1这将让你所有的H1元素

迭代H1 HTML元素的收集和使用的HtmlElement