CoderCastrov logo
CoderCastrov
Selenium

Парсинг данных с YouTube каналов с использованием Selenium и Python

Парсинг данных с YouTube каналов с использованием Selenium и Python
просмотров
4 мин чтение
#Selenium
Youtube — Selenium — Python

Обзор

Как мы знаем, количество контента от создателей на YouTube растет стремительно. Причина весьма проста - вы можете создавать любые видео, будь то новости, обучение программированию, игры или даже повседневная жизнь.

Это, очевидно, очень хорошо, потому что помимо выражения таланта каждого, это также помогает им финансово. Фактически, несколько миллиардеров появились благодаря своему успеху как создатели контента на YouTube.

А что насчет остальных?

Ну, помимо вышеперечисленных фактов, есть и другие факты, что несколько из них не смогли построить свой канал на YouTube.

У YouTube есть свой собственный алгоритм представления видео своим зрителям, большинство из них этого не замечают. Но также есть и те, кто приложил много усилий, чтобы следовать этому, но результаты также незначительны.

Что мне делать?

Если вы выполнили эти основные требования, следующим шагом является изучение вашей среды.

Что это значит?

Это означает,

Следуйте трендам и тем, чей канал соответствует вашим критериям.

Например, - ваш канал посвящен программированию на Python, так что какой день является трендом для этого критерия. - ваш канал посвящен программированию на Python, узнайте, чей канал популярен в обсуждении этой темы. И посмотрите, сколько видео он сделал, какие из них вы можете использовать и стать популярным также.

Помните, что копирование и подражание не означает делать глупости, такие как повторное размещение видео других людей. Ничего подобного не делайте, у вас есть свой собственный путь, покажите его!

Исходя из двух вышеуказанных пунктов, именно поэтому я написал эту статью. В ней рассказывается, как получить данные с YouTube с помощью Selenium и Python для целей анализа.

Шаги

  • Убедитесь, что у вас установлены библиотеки pandas и selenium, если нет, то вы можете сделать это следующим образом
$ pip install selenium
$ pip install pandas
  • Создайте файл python и импортируйте эти две библиотеки
from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

Примечание: Мы будем использовать By, чтобы определить, как мы будем парсить, основываясь на ID, имени класса, XPath и других.

  • Инициализируйте URL, который мы будем парсить, и используемый драйвер

YouTube-канал, с которого я буду получать данные на этот раз, - T-Series, канал YouTube, который, как говорят, имеет наибольшее количество подписчиков в мире.

url = "https://www.youtube.com/aashiqui2/videos"
driver = webdriver.Chrome()
driver.get(url)
  • Установка цели для парсинга

Данные, которые мы будем получать с видео, - это заголовок, количество просмотров, время публикации и ссылка на видео. Давайте начнем!

  1. Заголовок видео хранится в теге a с id = 'video-title', ссылка на видео также хранится здесь.
Как парсить данные с YouTube с помощью Python?
  1. Время публикации и количество просмотров хранятся в теге div с id = 'metadata-line', где количество просмотров помещается в первый тег span, а время публикации - во второй тег span.
Как парсить данные с YouTube-канала?
  • Создайте код

Сначала мы парсим ближайший контейнер, который мы нашли ранее.

videos = driver.find_elements(by=By.CLASS_NAME, value='style-scope ytd-grid-video-renderer')

Поскольку количество видео всегда будет больше одного (обычно), нам нужно сохранить их. Здесь я использую list.

contents = []

Отсюда мы будем брать все данные, потому что данные, которые мы будем брать, основаны на XPath, поэтому я надеюсь, что вы сделаете то, что нарисовано ниже. Цель проста - узнать положение цели, которую мы ранее установили относительно контейнера, который мы получили.

Если вы это сделали, вы должны получить то, что получил я. Пожалуйста, замените точки в коде выше на следующие,

  • чтобы получить заголовок
title = video.find_element(by=By.XPATH, value='.//*[@id="video-title"]').text
  • чтобы получить ссылку
link = video.find_element(by=By.XPATH, value='.//*[@id="video-title"]').get_attribute('href')
  • чтобы получить просмотры
views = video.find_element(by=By.XPATH, value='.//*[@id="metadata-line"]/span[1]').text
  • чтобы получить время публикации
when = video.find_element(by=By.XPATH, value='.//*[@id="metadata-line"]/span[2]').text

Далее, вне цикла, что означает, что процесс сбора данных завершен, вы можете преобразовать list в dataframe, чтобы его можно было анализировать более удобно. Затем не забудьте закрыть драйвер!

df = pd.DataFrame(contents)
print(df.head())driver.close()
  • Успешно запустите созданный код

Вот что я получил, а у вас?

как парсить YouTube

Удачи!

Надеюсь, вам понравилась статья, я настоятельно рекомендую подписаться на Medium Membership.

Ваша плата за членство напрямую поддерживает меня и других писателей, которых вы читаете. Вы также получите полный доступ ко всем историям на Medium.

Полный код

Парсинг данных с YouTube-каналов с использованием Selenium и Python