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 по единовременной цене. Нет повторяющихся платежей навсегда.MIN
SEC
[ПРЕДЛОЖЕНИЕ ОГРАНИЧЕННОЕ ПО ВРЕМЕНИ] Фиксированная скидка 252 доллара США на план Ultimate. Используйте код PC252
Получите скидку сейчасОдним щелчком мыши вы готовы к интеграции YouTube и Email Parser by Pabbly.
Кредитная карта не требуется
Один клик и готово к использованию YouTube и парсер электронной почты от Pabbly Integrations
Интеграция YouTube + Google Sheets
Парсер электронной почты от Pabbly + интеграция с YouTube
Интеграция YouTube + WooCommerce
Парсер электронной почты от Pabbly + интеграция с YouTube
Интеграция YouTube + Zoom
Парсер электронной почты от Pabbly + интеграция с YouTube
YouTube + WhatsApp от 360Dialog Integrations
Парсер электронной почты от Pabbly + интеграция с YouTube
YouTube + интеграция ActiveCampaign
Парсер электронной почты от Pabbly + интеграция с YouTube
Загрузить еще. ..
Автоматизируйте что угодно с YouTube и парсером электронной почты от Pabbly Integrations!
Когда это происходит
Триггеры
Сделать это
Действия
На связи
Когда это происходит
ТРИГГЕРЫ
Сделать это
Действия
На связи
Создайте собственную интеграцию, выбрав триггерное событие и действие, которое необходимо выполнить.
Попробуй это сейчас- Доступно более 1000 интеграций
- Неограниченное количество премиум-приложений
- Двухфакторная аутентификация (2FA)
- Неограниченные многоэтапные рабочие процессы
- Маршрутизаторы с неограниченным количеством путей
Запуск рабочих процессов
С Pabbly Connect вы можете легко подключиться и интегрировать YouTube и парсер электронной почты от Pabbly с различными приложениями, связанными с CRM, Sales, Marketing, Productivity или любыми другими приложениями.
Airtable
app2-название
YouTube
Анализатор электронной почты от Pabbly
Управление проектами
30-дневная гарантия возврата денег
Подключите YouTube и парсер электронной почты от Pabbly к более чем 1000 приложениям
YouTube
YouTube — это онлайн-платформа для обмена видео, которая позволяет пользователям просматривать, находить, создавать и управлять плейлистами и контентом YouTube.
Анализатор электронной почты от Pabbly
Анализатор электронной почты извлекает данные из входящей электронной почты, отправленной на указанный адрес электронной почты. Все данные, такие как имя электронной почты, тема, тело электронной почты и т. д., извлекаются из электронной почты автоматически. Вы можете отправить эти данные в другие приложения. Вы даже можете извлечь определенные детали из тела письма.
Что такое Pabbly Connect?
Pabbly Connect — это интеграционное приложение, которое соединяет несколько приложений вместе, чтобы вы могли отправлять данные из одного приложения в другое. Всего 3 простых шага и вперед! YouTube и парсер электронной почты от Pabbly интеграции!
Шаг 1:
Нажмите кнопку «Создать рабочий процесс».
Шаг 2:
Выберите приложения, которые вы хотите интегрировать.
Шаг 3:
Всё! Вы можете включить свой рабочий процесс автоматизации.
Шаг 1:
Нажмите кнопку «Создать рабочий процесс».
Шаг 2:
Выберите приложения, которые вы хотите интегрировать.
Шаг 3:
Готово! Вы можете включить свой рабочий процесс автоматизации.
Нам доверяют более 9000 клиентов
Нам доверяют более 9000 клиентов
Поддерживает более 1000 интеграций
2700+ видео
Учебники
Нам доверяют более 9000 клиентов
30-дневная гарантия возврата денег
2700+
Видео
Учебники
«Я переехал с Zapier на Pabbly. Мы используем около 1,6 млн задач в месяц на Pabbly, и оплачивается только 150 000 задач в месяц. Очень рекомендую Pabbly x2 !!!!! »
Хуан Коликкио,
LGG Media
Как интегрировать YouTube с парсером электронной почты от Pabbly?
Мы знаем, что вы хотите автоматизировать свои задачи, поэтому предлагаем пошаговое руководство по интеграции нескольких приложений.
Более 2700 видеоуроков
Те же рабочие процессы, минимальное использование задач
В отличие от других, Pabbly Connect не взимает плату за триггер и внутренние шаги. Выполняйте в 3 раза больше рабочих процессов с помощью YouTube и парсер электронной почты от Pabbly по сравнению с другими платформами.
- Нам доверяют более 9000 клиентов
- 30-дневная гарантия возврата денег
- Более 2700 видеоуроков
Мы гордимся нашей Замечательной Командой!
Мы начинали с очень малого, в нашей команде было всего 3 человека.