网络抓一个电话号码

时间:2013-01-16 16:38:43

标签: asp.net vb.net html-agility-pack

我是HtmlAgilityPack的新手,对我来说有点不清楚它是如何工作的。让我们说这篇代码的代码是什么时候写的

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. 一样正确
  4. 如何获取和显示这些标记之间的数据。
  5. 另一个问题是,我可以说我需要从该网址中删除一个电话号码,该号码可能不可用,或者可能不在任何定义的标签中。我是否有可靠的方法来获取相对搜索词的电话号码?有什么建议或想法?

1 个答案:

答案 0 :(得分:0)

实际上,当前的xpath会查看具有href参数的锚标记。我建议你阅读xpath语法(例如在http://www.w3schools.com/xpath/xpath_syntax.asp

要选择其他节点,您需要更改xpath以选择这些标记,例如:

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

获取所有li节点等。

可以使用所选文档节点的InnerHtml(示例中为link.InnerHtml)来访问标记中的数据

自动抓取电话号码真的很痛苦,每个国家/地区使用不同的长度,并且有许多不同的格式来记下数字:+12(0)3456 +123456 00123456 +12(0)34-56都是一样的有效的电话号码...有关简单的解决方案,请参阅Check if there is phone number in string C#

GL&安培; HF