Ищете HTML в iframe? - PullRequest
0 голосов
/ 26 мая 2020

Это HTML, который я хочу извлечь с веб-сайта (также показан выделенным ниже в полном виде HTML scipt):

<button class="download plyr__control plyr__tab-focus" id="download" type="button" data-plyr="download" href="https://www9.mp4upload.com:282/d/rsxqw2jvz3b4quuozowqskqwkav3ldpqiuo7gyh3dfbxphvjburtgr7t/video.mp4"><svg aria-hidden="true" focusable="false"><use xlink:href="#plyr-download"></use></svg><span class="plyr__tooltip">Download</span></button>

Моя конечная цель - получить URL-адрес href из этот выделенный бит, но я не могу понять, как его найти, используя BeautifulSoup. Я пробовал этот и многие аналогичные методы, но результат всегда был бы «Нет»:

print(soup.find("button", class_="download plyr__control plyr__tab-focus"))

Дополнительная информация: URL: https://9anime.to/watch/puella-magi-madoka-magica.q1n/yqq3r9x

res = requests.get(URL)
soup = BeautifulSoup(res.text, "html.parser")

Изображение для справки

1 Ответ

0 голосов
/ 26 мая 2020

Думаю, ваша ошибка может быть связана с тем, что у вас несколько классов.

Я нашел это из https://medium.com/@epicshane / using-beautifulsoup4-to-find-class -ight-match-3e263a95e330 и адаптировал его к вашему случаю:

import bs4

html = bs4.BeautifulSoup(requests.get(url).text, "html.parser")

tag = html.find(lambda tag: tag.name == 'button' and tag['class'] == ['download', 'plyr__control', 'plyr__tab-focus'])
...