Asp.net 网络抓取电话号码

Asp.net 网络抓取电话号码,asp.net,vb.net,html-agility-pack,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]"

我对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
  • 那么当
    SelectNodes
    //a[@href]
    时,这是否意味着它将只查看
    ahref
    标记 如果这样,我怎么能考虑循环内的其他标签,如<代码> < LI>,< /代码>。 它像
    //li[@class='wrap']|//div[@class='last']]
    一样正确吗
  • 如何获取和显示这些标记之间的数据
    另一个问题是,假设我需要从该url中提取一个电话号码,该号码可能不可用,或者可能不在定义的任何标记中。是否有任何可靠的方法,我可以工作,以获得一个电话号码,以一个相对的搜索条件?有什么建议或想法吗

    事实上,当前的xpath查看具有href参数的锚定标记。我建议您仔细阅读xpath语法(例如在)

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

    doc.DocumentNode.SelectNodes("//li")
    
    获取所有li节点等

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

    自动删除电话号码是一件非常痛苦的事情,每个国家使用不同的长度,有许多不同的格式来写一个号码:+12(0)3456+123456 00123456+12(0)34-56都是相同的有效电话号码。。。有关简单的解决方案,请参见

    GL&HF