我是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>, <h3>, <div>
这样的循环中的其他标签。
它是否像//li[@class='wrap']|//div[@class='last']
?? 另一个问题是,我可以说我需要从该网址中删除一个电话号码,该号码可能不可用,或者可能不在任何定义的标签中。我是否有可靠的方法来获取相对搜索词的电话号码?有什么建议或想法?
答案 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
!