Как я могу воспроизвести первый URL-адрес, который я получаю, когда я ищу в YouTube с vb.net? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь создать программу на vb.net, которая будет искать видео на YouTube по словам и воспроизводить первый URL (первый результат), который я получу, не дожидаясь выбора клиента.

Кто-томожет помочь мне?

Я выполнил поиск, но я не знаю, как это сделать, чтобы он воспроизводил первое видео, которое я получу автоматически.

1 Ответ

0 голосов
/ 29 октября 2018
  1. Какую форму вы выбираете для разработки этой программы?Вебформа?Winform?
  2. Я предполагаю, что форма winform, тогда вы можете использовать «WebBrowser» (вы можете найти «WebBrowser» в наборе инструментов)

    Private Sub openYouTube()
    
        WebBrowser1.Navigate("https://www.youtube.com/?gl=TW")
    
    End Sub
    
  3. Найдите строку поиска на YouTube (используйте GetElementByID) и вставьте строку, которую вы хотите найти (Используйте SetAttribute).Идентификатор поля ввода на панели поиска youtube - «поиск» (Как найти идентификатор любого элемента на веб-странице? Выберите целевой элемент и щелкните правой кнопкой мыши, выберите «проверять» для Chrome, «проверить элемент» для IE, он будет отображать детали элемента) enter image description here

    Private Sub inputString&SearchIt()
    
        Dim theStringYouWantToSearch as string
    
        WebBrowser1.Document.GetElementById("search").SetAttribute("value", theStringYouWantToSearch)
    
    End Sub
    
  4. Выполнить поиск (используйте InvokeMember ("click") для запуска поиска)

    Private Sub executeSearch()
    
        WebBrowser1.Document.GetElementById("search-icon-legacy").InvokeMember("click")
    
    End Sub
    
  5. Найдите первый результат и запишите URL.Этот процесс более сложный, используйте GetElementsByTagName, чтобы получить коллекцию таблиц результатов, первый результат - первый элемент этой коллекции.Найдите таблицу с первым результатом, затем выполните цикл по всем элементам этой таблицы, чтобы найти элемент с идентификатором «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
    
  6. Между каждым шагом вам приходится ждать завершения загрузки веб-страницы, иначе программа не найдет элемент.Есть несколько способов сделать это, вы можете поискать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...