Вы можете Beautiful Soup проанализировать исходный код iframe и найти элементы скрипта, но оттуда вы по своему усмотрению. Строка file: "xxxxx",
находится в коде JavaScript, поэтому вам нужно найти вызов функции (в данном случае playerInstance.setup()
) и решить, какая из двух таких строк «file:» вам нужна, и удалить ее. нежелательный синтаксис JS вокруг URL.
Регулярные выражения помогут в этом, и вам, вероятно, лучше просто искать строки в HTML-коде iframe. Вы уже импортировали re
, поэтому я заменил вашу последнюю строку на:
lines = re.findall("file: .*$", inner_content.text, re.MULTILINE)
print( '\n'.join(lines) )
... чтобы получить список строк с "file:" в них. Вы можете (и должны) использовать более подходящее RE, чтобы найти только тот, который имеет "http://
и разрешает только пробелы перед "file:" в строках. (У Python, Java и моего текстового редактора разные представления о том, что находится в RE, поэтому мне приходится каждый раз писать одну и ту же документацию. Вы тоже можете это сделать - в конце концов, это ваша проблема.)
Функция questions.get () не работает для получения байтов. Попробуйте подход urlretrieve
Вишну Киран - возможно, это сработает. Использование URL-адреса в окне браузера, по-видимому, дает правильное видео, поэтому, возможно, вам придется настроить пользовательский агент и / или файлы cookie, которые вам придется подделать.