Я пытался проверить по ссылке на видео на YouTube, что канал / загрузчик подтвержден (синий значок). Похоже, что у Youtube API для этого нет функции, поэтому я пытался очистить, используя BeautifulSoup
. Вот что я пробовал:
from bs4 import BeautifulSoup
import requests
url = "https://www.youtube.com/watch?v=" + video_id
source = requests.get(url).text
bs = BeautifulSoup(source, 'lxml')
# does not work
bs.find_all("div", {"class": "badge badge-style-type-verified style-scope ytd-badge-supported-renderer"})
Я попытался отследить иерархию элементов HTML, ведущих к классу ytd-badge
, и обнаружил это, проверив:
html - > body -> ytd-app -> #content -> # page-manager -> ytd-watch-flexy -> #columns -> #primary -> div # primary-inner.style-scope.ytd-watch-flexy - > #meta -> # meta-content -> ytd-video-secondary-info-renderer.style-scope.ytd-watch-flexy -> #container -> div. # top-row.style-scope.ytd-video -secondary-info-renderer -> ytd-video-owner-renderer -> div. # upload-info.style-scope.ytd-video-owner-renderer -> # имя-канала -> ytd-badge-supported-renderer .style-scope.ytd-channel-name
Он довольно длинный и безумный, поэтому мне было интересно, как я могу получить к нему доступ? Есть ли более простой способ выполнить sh это с помощью Python? Спасибо!