BeautifulSoup, браузер не поддерживается

В попытке парсинга текста с сайта Youtube Music, в парсер лезет лишь страница с текстом :

Приложение YouTube Music не поддерживается в вашем браузере. Обновите его или установите Google Chrome

Можно ли решить данную проблему? Вот код самой программы:

import requests
from bs4 import BeautifulSoup


def takeHTML(url):
    r = requests.get(url)
    r.encoding = 'utf8'
    return r.text


def getLink(html):
    soup = BeautifulSoup(html, 'lxml')
    d = soup.find_all('div')
    #head = soup.find('a', class_="yt-simple-endpoint style-scope yt-formatted-string")
    print(d)

getLink(takeHTML('https://music.youtube.com/playlist?list=RDCLAK5uy_n1xp8llRUpMLfFAnKJlwdAN5M9oqFUiFA'))

Ответы (1 шт):

Автор решения: Elusha

Скорее всего библиотека requests выдаёт вас, как парсер или представляется серверу как какой-то устаревший браузер. Чтобы сказать requests как представляться, нужно указать дополнительные параметры в вашем запросе. Вам нужно в параметре headers указать словарь с нужными нам настройками. Чтобы представиться другим браузером нужно указать значение User-Agent. Чтобы сгенерировать эту информацию установите модуль fake-useragent и потом какое-либо поле класса UserAgent. Лучше всего UserAgent.chrome() Ниже ваш исправленный код:

import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent


def takeHTML(url):
    ua = UserAgent()
    r = requests.get(url, headers={'User-Agent': ua.firefox})
    r.encoding = 'utf8'
    return r.text


def getLink(html):
    soup = BeautifulSoup(html, 'lxml')
    d = soup.find_all('div')
    #head = soup.find('a', class_="yt-simple-endpoint style-scope yt-formatted-string")
    print(d)

getLink(takeHTML('https://music.youtube.com/playlist?list=RDCLAK5uy_n1xp8llRUpMLfFAnKJlwdAN5M9oqFUiFA'))

Не забудьте установить fake-useragent

→ Ссылка