@ivanovvan

Как спарсить ссылки на видео из тега iframe с помощью python?

есть сайты с фильмами из которых я хотел спарсить временные ссылки на видео файлы. Проблема в том, что эти ссылки лежат в теге iframe и если их вытащить с сайта - они просто не работают, в большинстве случаев при переходе по ним отображается что-то вроде "фильм не найден".
Как вытащить работоспособные ссылки?
Я использовал вебдрайвер firefox
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
                    element2 = driver.find_element(By.XPATH, """/html/body/div[3]/div/div[2]/main/div[2]/div/article/div[1]/div[2]/div[3]/iframe""")

ps
работал с сайтами типа zetflx, lord film, kinogo
  • Вопрос задан
  • 1067 просмотров
Пригласить эксперта
Ответы на вопрос 2
lppxx
@lppxx
Software engineer
Думаю ты не там ищешь. Сайт предоставляет возможность скачивания видео, даже без плеера 1/2.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup as bs
from fake_useragent import UserAgent as usr

import requests
import re


def get_video(url):
    ua = usr(cache=True)
    hdr = {
        'accept': '*/*',
        'user-agent': ua.chrome
    }

    try:
        resp = requests.get(url=url, headers=hdr)
        sp = bs(resp.text, 'lxml')
        video = sp.find(re.compile('iframe'), id='cdn-player')
            .find('div', id='qplayer').find('div', id='qplayer_vbox')
            .find('div', id='qplayer_controls').find('div', id='qplayer_download_control')
            .find('div', class_='qp_down_nav').find(re.compile('^a')).get('href');

        req = requests.get(video, headers=hdr, stream=True)

        with open('video.mp4', 'wb') as file:
            for chunk in req.iter_content(8192):
                file.write(chunk)

    except Exception as ex:
        return 'Upps... Check the URL please!'

def main():
    get_video('https://kinogo.biz/28467-hobbit-nezhdannoe-puteshestvie-2012.html')


if __name__ == '__main__':
    main()


Вот такой вот код получился, но не смог до конца проверить работоспособность (попался на капчу Cloudflare).
Ссылки на видео находятся именно в иконке загрузки (меню-бургер).
Ответ написан
@Kadabrov
загрузил через драйвер, сохранил весь код затем обработал его через bs4
html = browser.page_source
with open('1.html', 'w') as f:
    f.write(html)
soup = BeautifulSoup(html, 'lxml')
iframe = soup.find('iframe', id="cdn-player").get('data-src')


//red.uboost.one/start/d3894e13ac7867f0ea0db534fb9762fd/b22f104beb331c4c67ca73d4c4d6bd9a
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы