显示网站的特定部分

时间:2014-01-13 09:34:46

标签: vb.net webclient vb.net-2010 alexa

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

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

我只想要在textbox1.text

中提供的该网址的全球排名

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

我只需要在VB表单中显示全局排名。

1 个答案:

答案 0 :(得分:0)

Plz看看这个:

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。关于它是如何工作的一些话:

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

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