Облачная музыка NetEase
Несколько дней назад редактор поделился с вами анализом визуализации данных.В конце статьи я упомянул сканирование текстов песен NetEase Cloud Music.Сегодня я поделюсь с вами методом сканирования текстов песен NetEase Cloud Music.
Общая идея этой статьи такова:
Найдите правильный URL и получите исходный код;
Используйте bs4 для анализа исходного кода, чтобы получить название песни и идентификатор песни;
Вызовите API NetEase Cloud Song, чтобы получить текст песни;
Запишите текст в файл и сохраните его локально.
Цель этой статьи — получить тексты песен NetEase Cloud Music и сохранить их в локальный файл. Общая схема эффекта выглядит следующим образом:
Песни Чжао Лэя
В этой статье в качестве объекта сбора данных используется бог народных песен Чжао Лэй, и в частности собираются тексты его песен. Методы сбора других певцов можно сравнить. На следующем рисунке показаны тексты «Чэнду».
Песня Чжао Лэя --- "Чэнду"
Вообще говоря, URL-адрес, отображаемый на веб-странице, может быть записан в программе, и после запуска программы можно собрать исходный код веб-страницы, которую мы хотим. Но на веб-сайте NetEase Cloud Music этот способ не работает, потому что URL-адрес на веб-странице является поддельным URL-адресом, а в реальном URL-адресе нет знака #. Без лишних слов, давайте перейдем непосредственно к коду.
Получить исходный код веб-страницы
В этой статье используются модули request, bs4, json и re для сбора текстов музыки в облаке NetEase.Не забудьте добавить в программу заголовки и реферер для защиты от хотлинков, чтобы имитировать браузеры и предотвратить отказ в доступе со стороны веб-сайта. Здесь метод get_html используется специально для получения исходного кода, обычно нам также необходимо выполнять обработку исключений и соблюдать меры предосторожности.
Получив исходный код веб-страницы, я проанализировал исходный код и обнаружил, что название и идентификатор песни были глубоко спрятаны.Я искал ее на тысячах Baidu и обнаружил, что она находится в строке 294 исходного кода, скрыт под тегом
- следующим образом. Как показано на рисунке:
Где существуют название песни и идентификатор
Затем мы используем Beautiful Soup для получения целевой информации и прямой загрузки кода, как показано ниже:
Получить название песни и идентификатор
Здесь следует отметить, что при получении ID ссылку нужно нарезать, а полученное число и есть ID песни, кроме того, через метод get_text() получается название песни, и, наконец, название песни и ID соответствуют друг другу с помощью функции zip.
После получения идентификатора вы можете войти на внутреннюю страницу, чтобы получить тексты песен, но URL-адрес по-прежнему не является мощным, как показано ниже:
URL-адрес текста
Хотя мы можем четко видеть информацию о текстах песен, представленную в черно-белом цвете на веб-странице, мы не можем получить информацию о текстах песен по этому URL-адресу. Редактор нашел URL-адрес текста, захватив пакет, и обнаружил, что это был POST-запрос, и в нем было много данных, которые я не мог понять. Короче говоря, этот URL-адрес не может работать для нас. Как насчет решения?
Не паникуйте, редактор нашел API NetEase Cloud Music. Просто введите идентификатор песни в ссылку API, чтобы получить текст. Код выглядит следующим образом:
Вызовите NetEase Cloud API и проанализируйте тексты песен
В API информация о текстах песен загружается в формате json, поэтому ее необходимо сериализовать и анализировать с помощью json, а также очищать с помощью регулярных выражений (в качестве примера возьмем песню Чжао Лея «Chengdu»):
Необработанные данные
Очевидно, что есть время, когда текст представлен перед текстом, для нас это относится к нечистой информации, поэтому нам нужно использовать регулярные выражения для сопоставления. Это правда, что регулярные выражения — не единственный метод, и друзья также могут использовать слайсинг или другие методы очистки данных, поэтому я не буду здесь вдаваться в подробности.
Получив текст, запишите его в файл и сохраните в локальный файл Код выглядит следующим образом:
Запись файлов и частей тела программы
Теперь, пока мы запускаем программу и вводим идентификатор певца, программа автоматически захватывает текст песни, спетой певцом, и сохраняет ее локально. В этом примере идентификатор Чжао Лея — 6731. После ввода числа 6731 текст песни Чжао Лея будет записан, как показано на следующем рисунке:
Результат работы программы
После этого мы можем найти сгенерированный текст лирики в том же каталоге программы-скрипта, и лирика успешно сканируется.
Я полагаю, что у всех есть определенное понимание ползания текстов NetEase по облаку, но проще сказать, чем вниз, редактор рекомендует набирать код самостоятельно, на практике вы научитесь быстрее и больше.
В этой статье рассказывается, как собирать тексты песен NetEase Cloud Как собирать песни NetEase Cloud? Спешите и нажмите на предыдущую статью Xiaobian~~