2017-08-28 15 views
-1

Ich habe versucht, ein vb.net Programm, das automatisch Kommentare zu einem Video macht. Bis jetzt habe ich:Klicken Sie auf Kommentar-Schaltfläche auf Youtube

Public Class Form1 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     WebBrowser1.Navigate("https://www.youtube.com/watch?v=0ZZquVylLEo") 
    End Sub 

Jetzt muss ich es auf das Kommentarfeld auf der Website klicken. Ich dachte, der Weg wäre -

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    WebBrowser1.Document.GetElementById(".comment-simplebox-renderer-collapsed-content").InvokeMember("click") 
End Sub 

Aber das gibt nur einen Fehler. Ich bin wirklich verloren, wie dies zu tun ist, so würde jede Hilfe sehr geschätzt werden.

+0

Es ist wirklich wichtig zu lesen [fragen] .. Sie bitte alle Details enthalten. Welcher Fehler? Wenn Sie sich nicht anstrengen, sind wir weniger wahrscheinlich. –

+0

HttpWebRequest ist der beste Weg, um zu tun, was Sie wollen. Ich bevorzuge WebBrowser wirklich nicht für solche Situationen. – Youssef13

+1

Ich glaube nicht, dass Youtube damit glücklich wäre. Sie bieten eine API, um genau das zu tun. –

Antwort

0

einen Web-Browser zu einem Projekt hinzufügen und es nennen „Browser“

browser.Navigate("https://www.youtube.com/watch?v=OQ4oaLUilBc") 
    While browser.ReadyState <> WebBrowserReadyState.Complete 
     Application.DoEvents() 
    End While 
    Dim comment_wrote As Boolean = False 
    Dim comment_done As Boolean = False 
    While comment_wrote = False 
     For Each altelm As HtmlElement In browser.Document.GetElementsByTagName("DIV") 
      If altelm.GetAttribute("classname").ToString = "comment-simplebox-renderer-collapsed comment-simplebox-trigger" Then 
       altelm.Focus() 
       altelm.InvokeMember("click") 
      End If 

      If altelm.GetAttribute("classname").ToString = "comment-simplebox-text" And comment_wrote = False Then 
       altelm.Focus() 
       altelm.InvokeMember("click") 
       SendKeys.SendWait("I love this song!") 
       comment_wrote = True 
      End If 

     Next 
     Application.DoEvents() 
    End While 
    While comment_done = False 
     For Each altelm As HtmlElement In browser.Document.GetElementsByTagName("BUTTON") 
      If altelm.GetAttribute("classname").ToString = "yt-uix-button yt-uix-button-size-default yt-uix-button-primary yt-uix-button-empty comment-simplebox-submit yt-uix-sessionlink" And comment_done = False Then 
       altelm.Focus() 
       altelm.InvokeMember("click") 
       comment_done = True 
      End If 
      Application.DoEvents() 
     Next 
     Application.DoEvents() 
    End While 
Verwandte Themen