Web scraping python
Необходимо спарсить название ютуб канала через ссылку. Вот код:
from bs4 import BeautifulSoup
from requests import get
driver = BeautifulSoup(get('https://www.youtube.com/channel/UCapfEzadQamVtUXGp1oDSwQ').text, 'lxml')
print(driver.head.title.text)
Возникает проблема, что в одном случае результат:
Шахматы online Обучение - YouTube
В другом:
YouTube
Как пофиксить эту проблему без использования костылей?
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Можно воспользоваться YouTube Data API.
Пример:
import requests
API_KEY = '...'
CHANNEL_ID = 'UCapfEzadQamVtUXGp1oDSwQ'
params = {
'key': API_KEY,
'id': CHANNEL_ID,
'part': 'snippet',
}
d = requests.get('https://www.googleapis.com/youtube/v3/channels', params=params).json()
title = d['items'][0]['snippet']['title']
print(title)
stdout:
Шахматы online Обучение