Задать вопрос
@DED23

Почему ошибка 403 при скачивании видео?

Здравствуйте, я знаю что таких вопросов было много , но ответ для себя не нашел.Я не профи в этом,поэтому может это из-за ошибки в коде. Пробовал разные способы но все без толку. Подскажите как обойти ошибку.
Заранее спасибо!
Не судите строго вот код:
from bs4 import BeautifulSoup
import requests
import wget
url='https://jut.su/jojo-bizarre-adventure/season-1/episode-16.html'
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 YaBrowser/19.9.3.314 Yowser/2.5 Safari/537.36'}
def dow(url):
    ses=requests.Session()
    r=ses.get(url,headers=header)
    soup=BeautifulSoup(r.content,'html.parser')
    for i in soup.find_all('source',src=True):
        video=i['src']
        print(video)
        wget.download(video,"JOJO.mp4")
        break
dow(url)
  • Вопрос задан
  • 370 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
byxo-cyze
@byxo-cyze
Спасаю мир.
wget.download не использует user-agent, поэтому сайт запрещает скачивать файл.

from bs4 import BeautifulSoup
import requests
url='https://jut.su/jojo-bizarre-adventure/season-1/episode-16.html'

headers = {
            'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0'
        }

r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')

sources = soup.find_all('source', src=True)

with requests.get(sources[0]['src'], headers=headers, stream=True) as r:
        r.raise_for_status()
        with open("JOJO.mp4", 'wb') as f:
            for chunk in r.iter_content(chunk_size=8192): 
                if chunk: 
                    f.write(chunk)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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