Как очистить данные Youtube с помощью Python

Опубликовано: 2019-05-29
Оглавление показать
Зачем собирать данные с Youtube?
1. Найдите самые популярные ключевые слова
2. Сравните хэштеги
3. Найдите самые популярные каналы
4. Отслеживание популярности каналов
5. Запись лайков, антипатий и просмотров видео
Начнем с кода:
Объяснение кода сканера YouTube:
Какие данные можно получить с Youtube?
ЗАГЛАВИЕ
НАЗВАНИЕ КАНАЛА
КОЛИЧЕСТВО ПРОСМОТРОВ
НРАВИТСЯ
НЕ НРАВИТСЯ
КОЛИЧЕСТВО ПОДПИСОК
ХЭШТЕГИ
Вывод
Нужна помощь с извлечением веб-данных?

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

Зачем собирать данные с Youtube?

Данные YouTube могут быть полезными для широкого спектра вариантов использования, таких как:

1. Найдите самые популярные ключевые слова

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

2. Сравните хэштеги

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

3. Найдите самые популярные каналы  

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

4. Отслеживание популярности каналов

Извлекая данные о недавно загруженных видео определенного канала YouTube, вы сможете определить, растет ли популярность канала, снижается или остается на прежнем уровне.

5. Запись лайков, антипатий и просмотров видео

Вы можете создать график со временем по оси x и лайками, антипатиями или просмотрами по оси y, собирая данные из этих видео через равные промежутки времени.

Начнем с кода:

Поскольку мы уже объясняли процесс установки и инициализации в предыдущих статьях «Как извлечь данные из», подобных этой , мы надеемся, что вы готовы выполнить эти шаги.

Чтобы запустить код, используйте команду python, а затем введите URL-адрес видео YouTube при появлении запроса.

извлечь данные ютуба
Рис. Запуск кода из сценария оболочки.

Скопируйте приведенный ниже код в файл и назовите его youtubeDataExtractor.py (хотя на самом деле вы можете дать ему любое имя файла, если оно заканчивается на «.py»).

[язык кода = «питон»]

#!/usr/бин/питон
# -*- кодировка: utf-8 -*-

импортировать urllib.request
импортировать urllib.parse
импортировать urllib.error
из bs4 импортировать BeautifulSoup
импорт SSL
импортировать json
импортировать
импортировать json
импорт ОС
из запроса импорта urllib.request, urlopen

# Для игнорирования ошибок сертификата SSL

ctx = ssl.create_default_context()
ctx.check_hostname = Ложь
ctx.verify_mode = ssl.CERT_NONE

# Ввод от пользователя

url = input('Введите URL-адрес видео Youtube-')

# Заставить веб-сайт поверить, что вы заходите на него с помощью браузера Mozilla

req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
веб-страница = urlopen(req).read()

# Создание объекта BeautifulSoup html-страницы для удобного извлечения данных.

суп = BeautifulSoup (веб-страница, 'html.parser')
html = суп.prettify('utf-8')
видео_детали = {}
другие_детали = {}

для диапазона в soap.findAll('span',attrs={'class': 'watch-title'}):
video_details['TITLE'] = span.text.strip()

для скрипта в soap.findAll('script',attrs={'type': 'application/ld+json'}):
Описание канала = json.loads(script.text.strip())
video_details['CHANNEL_NAME'] = описание канала['itemListElement'][0]['item']['name']

для div в супе.findAll('div',attrs={'class': 'watch-view-count'}):
video_details['NUMBER_OF_VIEWS'] = div.text.strip()

для кнопки в soap.findAll('button',attrs={'title': 'Мне это нравится'}):
video_details['НРАВИТСЯ'] = button.text.strip()

для кнопки в soap.findAll('button',attrs={'title': 'Мне это не нравится'}):
video_details['DISLIKES'] = button.text.strip()

для span в супе.findAll('span',attrs={'class': 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count'}):
video_details['NUMBER_OF_SUBSCRIPTIONS'] = span.text.strip()

хэштеги = []
для диапазона в sup.findAll('span',attrs={'class': 'standalone-collection-badge-renderer-text'}):
для a в span.findAll('a',attrs={'class': 'yt-uix-sessionlink'}):
hashtags.append(a.text.strip())
video_details['HASH_TAGS'] = хэштеги

с open('output_file.html', 'wb') в виде файла:
файл.записать(html)

с open('data.json', 'w', encoding='utf8') в качестве выходного файла:
json.dump(video_details, outfile, sure_ascii=False,indent=4)

print ('———- Извлечение данных завершено. Проверить файл json.———-')
[/код]

Как только вы запустите код, вы найдете JSON, созданный в вашем текущем каталоге, с именем data.json. Мы запустили код для некоторых популярных музыкальных клипов, и вот связанные с ними JSON:

1. Гром от Imagine Dragons –

[язык кода = «питон»]

{
«НАЗВАНИЕ»: «Представьте себе драконов — Гром»,
"CHANNEL_NAME": "ImagineDragonsVEVO",
«NUMBER_OF_VIEWS»: «1 182 556 781 просмотр»,
«НРАВИТСЯ»: «6 693 559»,
«НЕ НРАВИТСЯ»: «337 823»,
"NUMBER_OF_SUBSCRIPTIONS": "17 млн",
«HASH_TAGS»: []
}

[/код]

2. В твоих чувствах Дрейк

[язык кода = «питон»]
{
«TITLE»: «Drake — In My Feelings (Lyrics, Audio) «Kiki Do you love me»»,
"CHANNEL_NAME": "Особое единство",
«NUMBER_OF_VIEWS»: «278 121 686 просмотров»,
«НРАВИТСЯ»: «2 407 688»,
«НЕ НРАВИТСЯ»: «114 933»,
"NUMBER_OF_SUBSCRIPTIONS": "614 КБ",
«HASH_TAGS»: [
«#ВМоихЧувствах»,
«#Дрейк»,
«#Скорпион»
]
}
[/код]

Объяснение кода сканера YouTube:

Как обычно, сначала мы очищаем HTML-код с веб-страницы и сохраняем его в файл в нашем локальном каталоге, чтобы мы могли проанализировать его и найти точки данных, которые можно легко извлечь и которые также будут ценными. Большую часть изучения точек данных на HTML-странице приходится выполнять вручную, путем поиска определенных ключевых слов или значений и определения того, где они встречаются.

Мы использовали BeautifulSoup (BS4) для извлечения данных из определенных мест в HTML-коде.

  1. Элемент типа span, имеющий класс «watch-title», — это место, где вы можете найти заголовок видео.
  2. Элемент скрипта типа «application/ld+json» содержит имя канала.
  3. Элемент div с классом watch-view-count поможет вам получить количество просмотров этого конкретного видео на YouTube.
  4. Элемент кнопки с заголовком «Мне это нравится» имеет подсчет количества лайков на этом конкретном видео.
  5. Как и в предыдущем пункте, элемент кнопки с заголовком «Мне это не нравится» имеет подсчет количества неприязней к конкретному видео.
  6. Элемент span с классом «yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count» — это элемент, из которого вы можете извлечь количество подписчиков на канал, который загрузил это конкретное видео.
  7. Поиск хэштегов, связанных с данным видео, немного сложнее, чем другие точки данных. Во-первых, вам нужно извлечь все промежутки с классом «автономная-коллекция-значок-рендерер-текст», а оттуда нужно извлечь все a-теги с классом- «yt-uix-sessionlink». Извлекая текст из всех a-тегов в массив, вы сможете создать список хэштегов. Этот массив может быть добавлен к результату json под определенным ключом под названием «HASH_TAGS», чтобы получить информацию в структурированном формате в конечном результате json.

Какие данные можно получить с Youtube?

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

ЗАГЛАВИЕ

Самая важная точка данных — это та, которую мы извлекаем в самом начале. Название видео содержит много информации и имеет первостепенное значение, без которого все остальные данные не имели бы никакого смысла.

НАЗВАНИЕ КАНАЛА

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

КОЛИЧЕСТВО ПРОСМОТРОВ

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

НРАВИТСЯ

Отметки «Нравится» на видео на YouTube — это просто процент зрителей, которым понравилось видео достаточно, чтобы фактически нажать кнопку «палец вверх» под видео.

НЕ НРАВИТСЯ

Как и в приведенной выше точке данных, количество отметок "не нравится" будет определять количество нажатий на кнопку "не нравится" для видео.

КОЛИЧЕСТВО ПОДПИСОК

В то время как лайки, антипатии и просмотры рисуют картину популярности отдельного видео на YouTube, количество подписок дает более точное представление о том, насколько популярен канал YouTube. Для каналов YouTube у нас нет других показателей. Количество подписок — единственная точка данных, и чем она выше, тем популярнее рассматриваемый канал YouTube.

ХЭШТЕГИ

Хэштеги стали популярным способом сделать ваш контент доступным для поиска на разных носителях. Будь то посты в Facebook или фотографии в Instagram, сегодня люди используют хэштеги для разных типов онлайн-контента, чтобы можно было ассоциировать разные типы контента. Вот почему сегодня так популярны «трендовые хэштеги».

Вывод

Хотя данный код может извлекать только определенные точки данных со страницы видео YouTube, изучение HTML-страниц с разных страниц YouTube может помочь вам найти больше точек данных, которые встречаются в похожих элементах HTML. Веб-скрапинг не имеет жестких и быстрых правил, поскольку сами веб-сайты постоянно меняются. Следовательно, узнать, какие данные и как очищать, можно только на основе опыта путем очистки различных веб-страниц с разными форматами данных.


Нужна помощь с извлечением веб-данных?

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

Ой! Мы не смогли найти вашу форму.

Отказ от ответственности: код, представленный в этом руководстве, предназначен только для учебных целей. Мы не несем ответственности за то, как он используется, и не берем на себя никакой ответственности за любое вредоносное использование исходного кода.