2016-05-31 33 views
-1

我有一個輕微的問題,試圖從網站上的元素獲取字符串。VB.Net - 獲取元素html的字符串/值?

是我的目標爲: 基本上我試圖從一個網站的字符串/值,使之進入一個TextBox.text或標註甚至。 沒有太多的exmaples,但我沒有經驗在這方面,以及從網站獲取/獲取元素並將值返回到框或標籤!

但是,這是我迄今爲止。

Imports System.Net 
Imports System.Collections.Specialized 

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click 

    On Error Resume Next 
    'Web String 
    Dim ws As New WebClient 
    Dim data As String = ws.DownloadString("http://www.ip-tracker.org/locator/ip-lookup.php?ip=" & TextBox1.Text) 

    'IP 
    Dim IP As String = Split(data, "<th>IP Address:</th>")(1) 

    IP = Split(IP, "<div style=")(0) 
    'If IP = Nothing Then 
    'IP = "Unknown" 
    'End If 
    IPLabel.Text = (IP) 

End Sub 

如果有人能幫助我,這將是偉大的!

在先進的感謝,如果有人可以幫助我,

Sirmajor

+0

備註:在上面的代碼中你有一些vb6語法。你是否會遇到'.net和vb6'的混淆? – Codexer

+0

使用HTML解析器。 –

+0

@zaggler:這是VB.NET。他使用了一些VB6方法和'On Error Resume Next'語句,但是這是VB.NET,因爲按鈕事件是如何構造的。 VB6的按鈕事件如下所示:'Sub Command1_Click()'。 --- **編輯:**我的壞。我查了起來,我曾經使用VB6,但我的按鈕事件看起來不像VB.NET,但像我上面寫的。奇怪... –

回答

1

HTML頁面是一樣的xml,這樣你就可以解析字符串XDocument對象和查詢對象找到您所需要的信息。

'Dim url As String = "http://www.ip-tracker.org/locator/ip-lookup.php?ip=" & TextBox1.Text 
Dim url As String = $"http://www.ip-tracker.org/locator/ip-lookup.php?ip={TextBox1.Text}" 
Dim data As String = webClient.DownloadString(url) 

Dim htmlPage As XDocument = XDocument.Parse(data) 

Dim header As XElement = 
    htmlPage.Descendants("th"). 
    Where(Function(thElement) thElement.Value.Equals("IP Address:")). 
    FirstOrDefault() 

上面是如何從xml文檔中查找特定節點的示例。使用相同的方法來查找您需要的值。

+0

這條線路上出現錯誤: Dim url As String = $「http://www.ip-tracker.org/locator/ip-lookup.php?ip={TextBox1.Text}」 –

+0

+1 Love我一些字符串插值!我現在一直使用$「」。我知道你編輯了這篇文章,但我會在答案中提供兩種方法。 –

+0

仍然沒有理解這一點= /,你介意修復代碼,以便它可以從網站讀取特定的行或字符串? 當我發現IP的詳細信息時,我試圖從本網站的大部分字符串中獲取返回值。 http://www.ip-tracker.org/ –