2013-07-29 131 views
0

我需要使用visual basic在網頁上的兩個span標籤之間獲取文本。VB從html元素中獲取文本

<span>Some Text</span> 

我知道必須有辦法,但我似乎無法找到它。

這是我沒有的網站。

回答

1

給你的範圍一個ID和runat="server"屬性例如

<span id="xMySpan" runat="server">Some Text</span> 

然後,您將能夠在服務器端代碼中檢索它,例如,

Dim sVar As String = xMySpan.InnerHtml 
+0

你是什麼意思?你想做一些屏幕報廢? –

0

怎麼樣給ID分配一個ID?如果這樣做,那麼這個作品:

TextBox1.Text = _ 
WebBrowser1.Document.GetElementById("spanID").GetAttribute("innerText") 

使用這種格式:

<span id="spanID">...</span> 

編輯:通過內容過濾:

$("span").filter(function(){ 
    return $(this).html() == "a"; 
}) 

將與此工作:

<span>a</span> 
+0

我試圖選擇的範圍確實有一個ID,但我需要通過span標籤內的文本來選擇它 – user2620851

+0

請參閱我的關於按內容過濾的編輯。 – eclipsis

+0

以及無論如何做到這一點,而無需編輯HTML文檔@Eric? – user2620851

0

你是從整個HTML d中提取的或者只是上面引用的文字?

如果它只是上面的(你已經過濾掉了其他的HTML),那麼你可以使用LEFT()和RIGHT()的組合來剪掉末端,或者使用REPLACE()來擺脫這兩個標籤。

+0

我想從整個文件從外部文本 – user2620851

0

我做了這個劇本,希望這將是有益的

我:

  • 文本框來獲取YouTube網址[urlVideo]

  • 按鈕加載頁面[btn_loadViews]

  • webBrowser控件[webBrowser1]

  • 和標籤來顯示文本[lb_views]

我沒有驗證任何東西,所以這只是我如何從網站獲取文本的例子。 如果還有其他方法可以做到這一點,我也想知道它。 =)

Private Sub btn_loadViews_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_loadViews.Click 

    WebBrowser1.Navigate(urlVideo.Text) 
    WaitForPageLoad() 

    getViews() 


End Sub 

Private Sub getViews() 
    Try 
     Dim version = FileVersionInfo.GetVersionInfo("c:\windows\system32\ieframe.dll") 
     'Depending on the navigator version, google's server sends diffetent pages, so 
     'Here Detect ie version 
     If version.ProductVersion < "8" Then 
      lb_views.Text = WebBrowser1.Document.GetElementById("vc").FirstChild.InnerText 
     Else 
      lb_views.Text = WebBrowser1.Document.GetElementById("watch7-views-info").FirstChild.InnerText 
     End If 

    Catch ex As Exception 
     MsgBox(ex.ToString) 
     Application.Exit() 
    End Try 

End Sub 


Private Property pageready As Boolean = False 

Private Sub WaitForPageLoad() 
    AddHandler WebBrowser1.DocumentCompleted, New  WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter) 
    While Not pageready 
     Application.DoEvents() 
    End While 
    pageready = False 
End Sub 

Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) 
    If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then 
     pageready = True 
     RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter) 
    End If 
End Sub