vb.net - 使用vb.net在youtube中搜索时,如何播放获得的第一个网址?

标签 vb.net youtube

我试图在vb.net中做一个程序,该程序将通过单词搜索youtube上的视频并播放第一个URL(第一个结果),而无需等待客户端选择。

有人可以帮助我吗?

我进行了搜索,但我不知道该怎么做,它将播放我将自动获得的第一个视频。

最佳答案

  • 您选择哪种形式开发此程序? Webform? Winform?
  • 我假设表单是winform,那么您可以使用“WebBrowser”(您可以在工具箱中找到“WebBrowser”)
    Private Sub openYouTube()
    
        WebBrowser1.Navigate("https://www.youtube.com/?gl=TW")
    
    End Sub
    
  • 在youtube上找到搜索栏(使用GetElementByID),然后插入要搜索的字符串(使用SetAttribute)。 youtube搜索栏输入框的ID为“搜索”(如何在网页中查找任何元素的ID?定位该元素并单击鼠标右键,为Chrome选择“检查”,为IE选择“检查元素” ,它将显示元素详细信息)
    enter image description here
    Private Sub inputString&SearchIt()
    
        Dim theStringYouWantToSearch as string
    
        WebBrowser1.Document.GetElementById("search").SetAttribute("value", theStringYouWantToSearch)
    
    End Sub
    
  • 执行搜索(使用InvokeMember(“click”)触发搜索)
    Private Sub executeSearch()
    
        WebBrowser1.Document.GetElementById("search-icon-legacy").InvokeMember("click")
    
    End Sub
    
  • 查找第一个结果并记录URL。
    这个过程比较复杂,使用GetElementsByTagName获取结果表的集合,第一个结果是该集合的第一项。查找第一个结果的表,然后遍历该表的所有元素,以找到id为“thumbnail”的元素,并且该元素具有URL的一部分信息。
    Private Sub findFirstResult()
    
       Dim elemCollection as HtmlElementCollection
       Dim firstResultTable as HtmlElement
       Dim hrefString as string
       Dim resultURL as string
    
       elemcollection = WebBrowser1.Document.GetElementsByTagName("ytd-video-renderer")
    
       firstResultTable = elemCollection.item(0)
    
       For each element as HtmlElement in firstResultTable.All
           If element.Id = "thumbnail" then
              hrefString = element.GetAttribute("href")
           End if
       Next
    
       resultURL = "https://www.youtube.com" & hrefString
    
    End Sub
    
  • 在每个步骤之间,您必须等待网页加载的补充,否则程序将找不到该元素。有几种方法可以执行此操作,您可以对此进行一些搜索。
  • 关于vb.net - 使用vb.net在youtube中搜索时,如何播放获得的第一个网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53015216/

    相关文章:

    vb.net - 从 GridEx 中的选定行获取值

    vb.net - 如何在NumericUpDown控件中显示一个空值?

    windows - Vb.net 读取文件后不关闭文件

    css - “Hide” YouTube的内嵌视频旋转圈

    android - youtube影片无法在android webview中运作

    google-chrome - Chrome出现问题,将鼠标悬停在覆盖YouTube嵌入的链接上

    mysql - 通过 ssh 隧道连接 vb.net

    vb.net - vb.net 等待第二个表格关闭,然后再继续

    php - 在<embed>标记内调用PHP函数

    google-chrome - Chromecast 功能