2013-01-16 116 views
0

我是HtmlAgilityPack的新手,它對我來說有點不清楚它是如何工作的。當這樣的一段代碼被寫入Web報廢電話號碼

Dim url1 As String = "http://www.bing.com/search?q=Verizon 
Dim hw As New HtmlWeb() 
Dim doc As HtmlDocument = hw.Load(url1) 
For Each link As HtmlNode In doc.DocumentNode.SelectNodes("//a[@href]") 

Dim att As HtmlAttribute = link.Attributes("href") 
Response.Write(att.Value) 

Next 
  1. 比方說,所以當SelectNodes//a[@href]這是否意味着它只會看ahref標籤?
  2. 如果是這樣,我怎麼能讓它考慮像<li>, <h3>, <div>這樣的循環內的其他標籤。 它是不是像//li[@class='wrap']|//div[@class='last']
  3. 這些標籤之間的數據如何獲取和呈現。

另一個問題是,可以說我需要從該網址刮取電話號碼,該號碼可能不可用或可能不在任何定義的標籤中。是否有任何可靠的方法可以用來獲取相對搜索詞的電話號碼?任何建議或想法?

回答

0

確實,當前xpath會查看具有href參數的錨定標記。我建議你XPath語法(例如在http://www.w3schools.com/xpath/xpath_syntax.asp)讀了

要選擇其他節點上,您需要更改XPath來選擇這些標籤,例如:

doc.DocumentNode.SelectNodes("//li") 

來獲得所有節點李等

在標籤上的數據可以使用所選的文檔節點的innerHTML(link.InnerHtml在你的例子)

自動刮電話號碼是一個真正的痛苦,每個國家都使用不同的長度和有達成許多不同的格式寫下一個號碼:+12(0)3456 123456 0(0)34-56都是一樣有效的電話號碼......一個簡單的sollution

GL HF &見Check if there is phone number in string C#