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 шт):
Скорее всего библиотека 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