Как большой поклонник классического рока, живущего во Франции, я очень разочарован отсутствием хорошего классического рок -радио, которое у нас есть. Я провел четыре месяца в Сент -Луисе, штат Миссури, и у меня была возможность слушать KSHE 95 каждый день, играя некоторые из моих любимых классических рок -мелодий. К сожалению, я не могу слушать это радио во Франции, когда они блокируют его. К счастью, их веб -сайт показывает, что мелодия играет в настоящее время, а также несколько предыдущих.
Я решил сделать себе пустой плейлист Spotify и автоматически добавить в дорожки KSHE. Я также хотел иметь возможность добавлять песни из другого подобного классического рок -радио. Поэтому я создал многоразовую архитектуру, которая позволяет зарегистрировать различные веб -скребки, чтобы получить историю воспроизведения радио и добавить ее в свой плейлист.
Пока что я могу получить песни из этих радиоприемников:
Не стесняйтесь пинговать, если хотите помочь!
Чтобы это работало, вот что делать.
Во -первых, вам нужно настроить учетную запись Developer Spotify и зарегистрировать приложение. Найдите, как здесь. Как только ваше приложение будет создано, у вас будет доступ к следующим Crendentials:
client_idclient_secretredirect_uri Найдите user_id (ваше имя пользователя Spotify) и добавьте эти 4 учетные данные в файл с именем .spotify-token.json . У вас есть шаблон здесь: .potify-token.json.dist. Приложению понадобятся тем, кто обновляет треки в ваш список воспроизведения.
ПРИМЕЧАНИЕ. В этом приложении uri перенаправления должен быть http://localhost:9999/auth/callback .
Как только вы будете хороши, установите требования в виртуальной среде:
pip install virtualenv # if you don't have it already
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt Приложение использует базу данных sqlite для хранения всех песен, которые она загрузила до сих пор. Вы должны инициализировать базу данных, выполняя эту команду: make init-db .
Вот необходимые шаги для обновления вашего плейлиста с последними песнями с Radio KSHE:
make start-api . Приложение теперь должно работатьhttp://localhost:9999 .http://localhost:9999/authmake update-playlist , чтобы получить последние песни в вашем плейлисте. Вызовы поддерживаются до сих пор:
GET , localhost:9999/api : Проверьте, что API -GET , localhost:9999/auth : Authenticate в течение 3600 секундGET , localhost:9999/api/update_playlist : обновляет список воспроизведения сЕсли вы хотите добавить еще один веб -сайт для заполнения списка воспроизведения, вы можете написать новый Scrapper в модуле SRC.Scraping.
Пожалуйста, следуйте этим шагам для этого:
Создайте класс, чьи имена заканчиваются Scraper , например: YourScrapper
(Хотя должно быть ясно, какой веб -сайт он ползет).
Сделайте этот класс унаследовать от Scraper
Позвоните в super() в его конструкторе и передайте его URL -адрес веб -страницы
Полезть и playlist_id , чтобы загрузить песни. например:
player_url = 'https://radio.com/awesome-song-history'
playlist_id = '3BCcE8T945z1MnfPWkFsfX'
super ( YourScrapper , self ). __init__ ( player_url , playlist_id ) Переоценить метод get_song_history , первая ряд должна быть:
soup , driver = self . scrap_webpage ()Добавьте свой скребок в папку Tests:
class TestYourScraper ( GenericScraperTest ):
scraper = scraping . YourScraper ()Добавьте свой скребок в SRC.Playlist_updater.updater Class:
self . scrapers = [
scraping . KSHEScraper (),
scraping . EagleScraper (),
scraping . YourScraper () # New scraper!
]Ты все готово!