2014-01-13 65 views
4

我打算創建一個顯示VB.NET中的網頁排名的工具。
對於我使用顯示網站的特定部分

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

我只想說的網址,我在textbox1.text

提供喜歡這裏的全球排名,我提供example.com檢查它的Alexa的全球排名:

我只需要在我的VB窗體中顯示全局排名數字。

回答

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>標籤的截圖,其href屬性與字符串開始「/網站擁有者/證明」。因此,我的正則表達式匹配該標籤的內部文本並將其提取到匹配組中。

+0

感謝Rustam的工作... –

+0

你能解釋一下它的工作方式嗎? –

+0

@Amitkumar請參閱答案的更新。如果您在解決您的問題時將我的答案標記爲正確,我也會很感激。 – Rustam

相關問題