Visual Basic を使用して、Web ページの 2 つのスパン タグの間のテキストを取得する必要があります。
<span>Some Text</span>
方法があるに違いないことはわかっていますが、それを見つけることができないようです。
これは私が所有していないウェブサイト用です。
Visual Basic を使用して、Web ページの 2 つのスパン タグの間のテキストを取得する必要があります。
<span>Some Text</span>
方法があるに違いないことはわかっていますが、それを見つけることができないようです。
これは私が所有していないウェブサイト用です。
スパンに ID とrunat="server"
属性を与えます。
<span id="xMySpan" runat="server">Some Text</span>
次に、サーバー側のコードでそれを取得できます。
Dim sVar As String = xMySpan.InnerHtml
このスクリプトを作成しました。参考になれば幸いです
私は持っている:
YouTube の URL を取得するためのテキスト ボックス [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
スパンに ID を割り当てるとどうなりますか? もしそうなら、これはうまくいきます:
TextBox1.Text = _
WebBrowser1.Document.GetElementById("spanID").GetAttribute("innerText")
この形式の使用:
<span id="spanID">...</span>
編集:コンテンツでフィルタリングするには:
$("span").filter(function(){
return $(this).html() == "a";
})
これで動作します:
<span>a</span>
これを HTML ドキュメント全体から抽出していますか、それとも上記の引用テキストだけから抽出していますか?
上記だけの場合 (そして既に他の HTML を除外している場合)、LEFT() と RIGHT() の組み合わせを使用して端を切り落とすか、REPLACE() を使用して 2 つのタグを取り除くことができます。