我试图在vb.net中制作一个程序,该程序将通过单词搜索youtube上的视频并播放我将得到的第一个URL(第一个结果),而无需等待客户端选择。
有人可以帮助我吗?
我进行了搜索,但是我不知道该怎么做,它将播放我会自动获得的第一个视频。
答案 0 :(得分:0)
我假设表单是winform,那么您可以使用“ WebBrowser”(可以在工具箱中找到“ WebBrowser”)
Private Sub openYouTube()
WebBrowser1.Navigate("https://www.youtube.com/?gl=TW")
End Sub
在youtube上找到搜索栏(使用GetElementByID),然后插入要搜索的字符串(使用SetAttribute)。 youtube搜索栏输入框的ID为“搜索”(如何在网页中查找任何元素的ID?定位该元素并单击鼠标右键,为Chrome选择“检查”,为IE选择“检查元素” ,它将显示元素详细信息)
Private Sub inputString&SearchIt()
Dim theStringYouWantToSearch as string
WebBrowser1.Document.GetElementById("search").SetAttribute("value", theStringYouWantToSearch)
End Sub
执行搜索(使用InvokeMember(“点击”)触发搜索)
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
在每个步骤之间,您必须等待网页加载的补充,否则程序将找不到该元素。有几种方法可以执行此操作,您可以对此进行一些搜索。