Я работаю над школьным проектом и использую LXML и его функцию .xpath, чтобы попытаться получить заголовки лучших видео по поиску на YouTube, которые вы можете выбрать. Моя проблема в том, что когда он перебирает топ-5 и возвращает значения заголовков видео, я не могу понять, как вернуть действительный заголовок, независимо от того, что я делаю. Я пытался сделать /text()
или /string
или /title/text()
, так как текст, который я пытаюсь получить, находится в заголовке, но все, что я делаю, просто возвращает пустой список []
.
Вот мойкод Python:
from lxml import html
import requests
string = input("Enter what you want to search up on Youtube: \n")
string.replace(" ", "+")
page = requests.get('https://www.youtube.com/results?search_query=' + string)
tree = html.fromstring(page.content)
for x in range(5):
v = tree.xpath('/html/body/ytd-app/div/ytd-page-manager/ytd-search/div[1]/ytd-two-column-search-results-renderer/div/ytd-section-list-renderer/div[2]/ytd-item-section-renderer/div[3]/ytd-video-renderer[1]/div[1]/div/div[' + str(x) + ']/div/h3/a')
print(v)
И вот что я получаю:
Enter what you want to search up on Youtube:
rainbow
[]
[]
[]
[]
[]
И это HTML-код того, что я пытаюсь получить TITLE TEXT это из:
<a id="video-title" class="yt-simple-endpoint style-scope ytd-video-renderer" title="Hide and Seek in Rainbow Six Siege... Let's Go!!" href="/watch?v=g8MM_RS7zmw" aria-label="Hide and Seek in Rainbow Six Siege... Let's Go!! by Get_Flanked 8 hours ago 21 minutes 54,654 views">
Hide and Seek in Rainbow Six Siege... Let's Go!!
</a>
Я впервые создаю один из них, и я всего лишь студент, поэтому будьте спокойны, если я что-то неправильно отформатировал или сделал что-то не так. Спасибо за помощь !!