4

我将创建一个在 VB.NET 中显示网页排名的工具。
为此我使用

Dim str As String = New WebClient().DownloadString(("http://www.alexa.com/siteinfo/" + TextBox1.Text))

我只想要我提供的那个网址的全球排名textbox1.text

像这里一样,我提供 example.com 来检查其 Alexa 全球排名:

我只需要在我的 VB 表单中显示全球排名数字。

4

1 回答 1

0

请看看这个:

Sub Main
    Dim str As String = New WebClient().DownloadString(("http://www.alexa.com/siteinfo/example.com"))

    Dim pattern = "a href=""/siteowners/certify.+?\>(?<rank>[0-9,]+?)\<\/a\>"
    Dim r = new Regex(pattern, RegexOptions.IgnoreCase)
    Dim m As Match = r.Match(str)
    If m.Success Then
        Debug.Print("Global rank " + m.Groups(1).ToString())
        m = m.NextMatch()
        Debug.Print("Usa rank " + m.Groups(1).ToString())       
    Else
        Debug.Print("Failed")
    End If
End Sub

在我的电脑上答案是

Global rank 8,893
Usa rank 10,060

这段代码需要更好的错误处理,但我想它可以作为概念证明。

UPD。关于它如何工作的一些话:

上面的代码使用正则表达式(请查看此链接开始)来解析网页并提取您需要的值。

在您提供的屏幕截图中,可以看到排名存储在 html<a>标记中,我通过它的 href 属性来识别它,因为它是<a>页面上唯一的标记,其href属性以字符串“/siteowners/certify”开头。因此,我的正则表达式匹配该标签的内部文本并将其提取到匹配组中。

于 2014-01-13T12:44:04.683 回答