Парсинг сайта Zona, проблема получения ссылки

Рейтинг: 0Ответов: 1Опубликовано: 05.06.2023

При парсинге сайта https://w140.zona.plus/movies/lovi-moment-2019

Хочу получить src(ссылку на видео) из video

Вот сам video:

<video id="player_html5_api" webkit-playsinline="" class="vjs-tech" poster="https://img-vibio.imgzona.video/2846/2846421/frame00003.jpg" x-webkit-airplay="allow" playsinline="playsinline" tabindex="-1" preload="none" src="https://dl7.vibio.tv/66d0bc938d92546a34d4520eedc9323a/2846/2846421/output.lq.mp4">Воспроизведение видео в&nbsp;вашем браузере не&nbsp;поддерживается.</video>

Вот сам код:

from bs4 import BeautifulSoup
import time
import fake_useragent
import requests
import json
file = open("genre-zona.json", "w+")

ua = fake_useragent.UserAgent()

class Zona:
    def __init__(self):
        pass

    def get_movies_genre(self, num):
        if num <= 946:
            ua_r = ua.random
            print(ua_r)
            response = requests.get(f"http://w140.zona.plus/movies?page={num}")
            response = response.content
            url = BeautifulSoup(response, "html.parser")
            cookies = {
                '_ym_uid': '1685951488624399200',
                '_ym_d': '1685951488',
                '_ga': 'GA1.2.1205909313.1685951488',
                '_gid': 'GA1.2.31974282.1685951488',
                '_ym_visorc': 'b',
                '_ym_isad': '2',
                '_buzz_fpc': 'JTdCJTIycGF0aCUyMiUzQSUyMiUyRiUyMiUyQyUyMmRvbWFpbiUyMiUzQSUyMi53MTQwLnpvbmEucGx1cyUyMiUyQyUyMmV4cGlyZXMlMjIlM0ElMjJXZWQlMkMlMjAwNSUyMEp1biUyMDIwMjQlMjAwOCUzQTMwJTNBNTklMjBHTVQlMjIlMkMlMjJTYW1lU2l0ZSUyMiUzQSUyMkxheCUyMiUyQyUyMnZhbHVlJTIyJTNBJTIyJTdCJTVDJTIydWZwJTVDJTIyJTNBJTVDJTIyMzUwZjA4ZjFmZTY2YmQ3ZGE1MmRhMmZkYWJkOTAwYWMlNUMlMjIlMkMlNUMlMjJicm93c2VyVmVyc2lvbiU1QyUyMiUzQSU1QyUyMjExMy4wJTVDJTIyJTdEJTIyJTdE',
                '__upin': 'Te7Wz49Kadq4g4afsfh0Aw',
                '_ohmybid_cmf': '2',
                'adtech_uid': '928b96f6-71c3-4991-8418-8775cd4f6afb%3Azona.plus',
                'top100_id': 't1.7627570.1236391857.1685951615289',
                't3_sid_7627570': 's1.22459236.1685951615291.1685953879223.1.7',
                'last_visit': '1685917879021%3A%3A1685953879021',
                'ZONAMOBI': 'unocn44ulai341lib7lu18bh44',
                'uuid': '2306a8ba8dae8a94%3A3',
            }
            headers = {
                'User-Agent': ua_r,
                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
                'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
                'Accept-Encoding': 'gzip, deflate, br',
                'Connection': 'keep-alive',
                'Sec-Fetch-Dest': 'document',
                'Sec-Fetch-Mode': 'navigate',
                'Sec-Fetch-Site': 'none',
                'Sec-Fetch-User': '?1',
            }
            genre_list = url.find_all("a", class_="results-item")
            link_d = []
            for href in genre_list:
                link = href["href"]
                link_d.append("https://w140.zona.plus"+link)
            response_movies = requests.get(f"{link_d[0]}", headers=headers, cookies=cookies)
            response_movies = response_movies.content
            url_movies = BeautifulSoup(response_movies, "lxml")
            time.sleep(3)
            vid = url_movies.find("video", {"id": "player_html5_api"})
            print(vid)
            # video = url_movies.find("video", class_="vjs-tech")
            # print(video)
            # src = video["src"]
            # print(src)
        else:
            print("Page not found...")
        #     file.write("https://w140.zona.plus" + a + "\n")
    zona = Zona()
    print(zona.get_movies_genre(159))

Ответы

▲ 0

При парсинге видео:

 vid = url_movies.find("video", {"id": "player_html5_api"})

Вы передаёте в качестве необязательного аргумента словарь с id необходимого видео. Это излишне. Код будет работать, если убрать его.

 vid = url_movies.find("video")