YouTube コメントのユーザー名を Web ブラウザーからリストボックスに転送する方法を教えてください。YouTube API を使用せずにこれを実行しようとしています。私はしばらくの間探していましたが、何もありませんでした。
1 に答える
1
たとえば、このビデオがあります(http://www.youtube.com/watch?v=Sn67KEiDPLY)。次に、コメントの作成者を取得します。Web ブラウザーを作成する必要があります。Web ブラウザーがビデオに移動した後、documentcomplete ですべての作成者を検出できます。
For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")
Dim ElementClass As String = "author"
If element.OuterHtml.Contains(ElementClass) Then
Dim aclass = "yt-uix-sessionlink yt-user-name"
If element.FirstChild.OuterHtml.Contains("yt-uix-sessionlink yt-user-name") Then
MsgBox(element.FirstChild.InnerText)
End If
End If
Next
MSgBox は各著者を表示します。ただし、それらを ListBox に書き込むことはできます。TextBox を追加して、動画の URL を管理できます。したがって、最終的なコードは次のとおりです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
ListBox1.Items.Clear()
For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")
Dim ElementClass As String = "author"
If element.OuterHtml.Contains(ElementClass) Then
Dim aclass = "yt-uix-sessionlink yt-user-name"
If element.FirstChild.OuterHtml.Contains("yt-uix-sessionlink yt-user-name") Then
ListBox1.Refresh()
ListBox1.Items.Add(element.FirstChild.InnerText)
End If
End If
Next
End Sub
したがって、次のようなコメントを追加できます。
ListBox1.Items.Clear()
For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("div")
Dim ElementClass As String = "comment-text"
If element.OuterHtml.Contains(ElementClass) Then
Dim divclass = "comment-text"
If element.Parent.InnerHtml.Contains(divclass) Then
ListBox1.Refresh()
ListBox1.Items.Add(element.InnerText)
End If
End If
Next
Webbrowser コントロールで動作しますが、@ObieMD5 は正しいです。Youtube API を使用すると簡単になります。
于 2013-07-25T07:38:34.560 に答える