Youtube видео парсер: SE::YouTube — полноценный парсер YouTube | Документация | A-Parser

Содержание

python — Парсер видео с YouTube

Вопрос задан

Изменён 1 год 3 месяца назад

Просмотрен 1k раз

Есть такая задача: сделать скрипт на Python, который после выхода каждого ролика на канале, делал определенные действия(что угодно), как это лучше всего реализовать? Лично я пробовал использовать beautyful soup, но так и не разобрался, как правильно спарсить url нового видео, и принципе получить список видео P.S. если можно, приложите некоторый код пожалуйста

  • python
  • python-3.x
  • youtube

Рассмотри некоторый канал. Каждое видео это отдельный ytd-grid-video-renderer c классом «style-scope ytd-grid-renderer»

Название видео содержится в атрибуте title тега с id = «video-title»

В href содержится ссылка без домена (/watch?v=HQxZaeGxwQs)

Т. к. содержание страницы подгружается «динамический», через javascript, а вы новичек, я бы порекомендовал использовать связку Selenium + geckodriver + BeautifulSoup. Selenium зайдёт на страницу, выполнить javascript-ы и выгрузит полученый html — код в BS. Пример кода:

from selenium import webdriver
from bs4 import BeautifulSoup as BS
URL = "" #Ваш урл
driver = webdriver.Chrome()
driver.get(URL)
time.sleep(10)  #Можно ждать до загрузки страницы, но проще подождать 10 секунд, их хватит с запасом
html = driver.page_source

Теперь в переменной html код нашей страницы. Найдём в нем все видеоролики и названия к ним:

soup = BS(html, "html.parser")
videos = soup.find_all("ytd-grid-video-renderer",{"class":"style-scope ytd-grid-renderer"})
for video in videos:
   a = video.find("a",{"id":"video-title"})
   name = link.get_text()
   link = "https://www.youtube.com/" + a.get("href") 
   print(name, link)

Этот код выведет поочередно ссылки на все видео и их названия. Я прибавил к ссылке https://www. youtube.com/ , так как на youtube ссылке к роликам указаны без домена.

4

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Парсинг видео с канала Youtube (Python, BeautifulSoup, requests)

Есть вот такой код:

from bs4 import BeautifulSoup
import requests
ycid = input('Введите код-идентификатор канала: ') #получение идентификатор канала
url = f'https://www. youtube.com/channel/{ycid}' #создание ссылки на канал
HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 7.0; Win32; x32) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'}
print(f'Парсим с канала: {url}')
html = requests.get(url, headers = HEADERS )
html = html.text
soup = BeautifulSoup(html, 'lxml')
div_tags = soup.find_all('div', {'class': 'style-scope ytd-grid-video-renderer', 'id': 'dismissable'})
print(div_tags)
a_tags = [div.find('a') for div in div_tags]
print(a_tags)
url_img = [a['href'] for a in a_tags]
print(url_img)

Код должен парсить первое видео с указанного канала, но он выдаёт пустые списки.

Итог:

Введите код-индитификатор канала: UCviSYAcwdnDX1UoRzAHYgNg
Парсим с канала: https://www.youtube.com/channel/UCviSYAcwdnDX1UoRzAHYgNg
[]
[]
[]

Как можно исправить код?

  • python
  • python-3.x
  • requests
  • beautiful-soup

Рассмотри некоторый канал. Просмотрим код страницы при помощи Ctr + U

Если мы выполним поиск по названию какого то видео, то мы заметим что он присутствует в коде, но не в виде HTML. Дело в том что BS видит код, таким как он был до выполнения всех скриптов и.т.п., что может отличаться от html кода в средстве отладки вашего браузера. Вы можете получать r.content а далее про помощи json парсера выуживать информацию. В принципе ссылки на видео получить и без использования этого метода:

Так как вы новичок то я бы порекомендовал использовать связку Selenium + geckodriver + BeautifulSoup. Selenium зайдёт на страницу, выполнить javascript-ы и выгрузит полученый html — код в BS. Каждое видео это отдельный ytd-grid-video-renderer c классом «style-scope ytd-grid-renderer»

Название видео содержится в атрибуте title тега с id = «video-title»

В href содержится ссылка без домена (/watch?v=HQxZaeGxwQs)

Пример кода:

from selenium import webdriver
from bs4 import BeautifulSoup as BS
URL = "" #Ваш урл
driver = webdriver.Chrome()
driver.get(URL)
time.sleep(10)  #Можно ждать до загрузки страницы, но проще подождать 10 секунд, их хватит с запасом
html = driver.
page_source

Теперь в переменной html код нашей страницы. Найдём в нем все видеоролики и названия к ним:

soup = BS(html, "html.parser")
videos = soup.find_all("ytd-grid-video-renderer",{"class":"style-scope ytd-grid-renderer"})
for video in videos:
   a = video.find("a",{"id":"video-title"})
   name = link.get_text()
   link = "https://www.youtube.com/" + a.get("href") 
   print(name, link)

Аналогичный вопрос: тыk

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Youtube Video Parser iOS –

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

спросил

Изменено 7 лет, 8 месяцев назад

Просмотрено 1к раз

0

Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.

Я пытаюсь разобрать ссылку на YouTube и воспроизвести ее на MPMoviePlayerViewController.

Я просто перехожу по этой ссылке и могу успешно разобрать их пример ссылки на YouTube.
https://github.com/hellozimi/HCYoutubeParser
http://www.youtube.com/watch?v=8To-6VIJZRE

Однако проблема в том, что я не могу проанализировать другой URL-адрес YouTube, подобный этому
http://www.youtube.com/watch?v=Ndy1J859n5I

Это из-за продолжительности видео? Я хотел бы знать, как это решить.

Код

 // Получает словарь с каждым доступным URL-адресом YouTube
NSDictionary *videos = [HCYoutubeParser h364videosWithYoutubeURL: [URL NSURLWithString:@"http://www.youtube.com/watch?v=8To-6VIJZRE"]];
// Представляет MoviePlayerController с качеством youtube
MPMoviePlayerViewController *mp = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:[videos objectForKey:@"medium"]]] autorelease];
[самостоятельный PresentModalViewController: MP анимированный: YES];
// Для получения эскиза изображения теперь существует асинхронный метод.
(UIImage * изображение, NSError * ошибка) { если (! ошибка) { self.thumbailImageView.image = изображение; } еще { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Сообщение об ошибке":[описание локализованной ошибки] delegate:nil cancelButtonTitle:@"Отклонить" otherButtonTitles:nil]; [предупреждающее шоу]; } }];
  • ios
  • видео
  • youtube
  • mpmovieplayercontroller

3

Мне удалось успешно отправить видео из класса на Parse.com в приложение. Это то, что вы пытаетесь сделать? Если это так, приведенный выше код полностью неверен.

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

YouTube to Email Parser от Pabbly БЕСПЛАТНЫЕ интеграции

( ОГРАНИЧЕННОЕ ВРЕМЯ ) Пожизненная сделка Pabbly Connect по единовременной цене. Нет повторяющихся платежей навсегда.

HRS

MIN

SEC

[ПРЕДЛОЖЕНИЕ ОГРАНИЧЕННОЕ ПО ВРЕМЕНИ] Фиксированная скидка 252 доллара США на план Ultimate. Используйте код PC252

Получите скидку сейчас

Одним щелчком мыши вы готовы к интеграции YouTube и Email Parser by Pabbly.

Кредитная карта не требуется

Один клик и готово к использованию YouTube и парсер электронной почты от Pabbly Integrations

    Когда появится новое видео на канале (скоро устареет) на YouTube, новая строка в Google Sheets
    Интеграция YouTube + Google Sheets
    Когда появляется новое письмо в парсере электронной почты от Pabbly, список видео каналов на YouTube
    Парсер электронной почты от Pabbly + интеграция с YouTube
    При создании нового комментария к видео на YouTube создайте заказ в WooCommerce
    Интеграция YouTube + WooCommerce
    Когда появляется новое письмо в парсере электронной почты от Pabbly, список видео по идентификатору на YouTube
    Парсер электронной почты от Pabbly + интеграция с YouTube
    При создании нового комментария на канале на YouTube добавьте регистратора встречи в Zoom
    Интеграция YouTube + Zoom
    Когда появляется новое письмо в парсере электронной почты от Pabbly, список комментариев к видео на YouTube
    Парсер электронной почты от Pabbly + интеграция с YouTube
    Когда появится новое видео на канале с URL-адресом видео (скоро устареет) на YouTube, отправьте шаблонное сообщение в WhatsApp от 360Dialog
    YouTube + WhatsApp от 360Dialog Integrations
    Когда появится новое письмо в парсере электронной почты от Pabbly, получите комментарий по идентификатору на YouTube
    Парсер электронной почты от Pabbly + интеграция с YouTube
    Когда новое видео в канале с URL-адресом видео на YouTube, создайте или обновите контакт в ActiveCampaign
    YouTube + интеграция ActiveCampaign
    Когда появляется новое письмо в парсере электронной почты от Pabbly, список категорий видео на YouTube
    Парсер электронной почты от Pabbly + интеграция с YouTube

Загрузить еще. ..

Автоматизируйте что угодно с YouTube и парсером электронной почты от Pabbly Integrations!

Когда это происходит

Триггеры

Сделать это

Действия

На связи

Когда это происходит

ТРИГГЕРЫ

Сделать это

Действия

На связи

Создайте собственную интеграцию, выбрав триггерное событие и действие, которое необходимо выполнить.

Попробуй это сейчас