Sebagai penggemar berat rock klasik yang hidup di Prancis, saya sangat frustrasi dengan kurangnya radio rock klasik yang bagus yang kami miliki. Saya menghabiskan empat bulan di St Louis, MO, dan saya memiliki kesempatan untuk mendengarkan Kshe 95 setiap hari, memainkan beberapa lagu rock klasik favorit saya. Sayangnya, saya tidak bisa mendengarkan radio ini di Prancis saat mereka memblokirnya. Untungnya, situs web mereka menunjukkan lagu yang saat ini diputar, serta beberapa yang sebelumnya.
Saya memutuskan untuk menjadikan diri saya daftar putar Spotify yang kosong, dan secara otomatis menambahkan trek Kshe. Saya juga ingin dapat menambahkan lagu dari radio rock klasik serupa lainnya. Jadi saya membangun arsitektur yang dapat digunakan kembali yang memungkinkan untuk mendaftarkan berbagai pencakar web untuk mendapatkan sejarah bermain radio dan menambahkannya ke dalam daftar putar saya.
Sejauh ini, saya bisa mendapatkan lagu dari radio ini:
Jangan ragu untuk melakukan ping saya jika Anda ingin membantu!
Untuk membuatnya bekerja, inilah yang harus dilakukan.
Pertama, Anda harus menyiapkan akun pengembang Spotify Anda, dan mendaftarkan aplikasi. Temukan caranya di sini. Setelah aplikasi Anda dibuat, Anda akan memiliki akses ke crendential berikut:
client_idclient_secretredirect_uri Temukan Anda user_id (nama pengguna Spotify Anda) dan tambahkan 4 kredensial ini dalam file yang disebut .spotify-token.json . Anda memiliki template di sini: .spotify-token.json.dist. Aplikasi ini akan membutuhkannya untuk memperbarui trek ke daftar putar Anda.
Catatan: Dalam aplikasi ini, URI pengalihan harus http://localhost:9999/auth/callback .
Setelah Anda baik, instal persyaratan di lingkungan virtual:
pip install virtualenv # if you don't have it already
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt Aplikasi ini menggunakan database sqlite untuk menyimpan semua lagu yang telah diunduh sejauh ini. Anda harus menginisialisasi database yang menjalankan perintah ini: make init-db .
Berikut adalah langkah -langkah yang diperlukan untuk memperbarui daftar putar Anda dengan lagu -lagu terbaru dari radio Kshe:
make start-api . Aplikasi sekarang harus berjalanhttp://localhost:9999 .http://localhost:9999/authmake update-playlist untuk mendapatkan lagu-lagu terbaru di daftar putar Anda. Panggilan yang didukung sejauh ini adalah:
GET , localhost:9999/api : Periksa apakah API sudah habisGET , localhost:9999/auth : Otentikasi selama 3600 detikGET , localhost:9999/api/update_playlist : memperbarui daftar putar denganJika Anda ingin menambahkan situs web lain untuk mengisi daftar putar, Anda dapat menulis scrapper baru di modul src.scraping.
Silakan ikuti langkah -langkah ini untuk melakukannya:
Buat kelas yang namanya diakhiri dengan Scraper , misalnya: YourScrapper
(Meskipun harus eksplisit situs web mana yang dirayapi).
Buat kelas itu mewarisi dari Scraper
Hubungi super() di konstruktornya, dan lewati URL halaman web
untuk merangkak dan playlist_id untuk mengunggah lagu. misalnya:
player_url = 'https://radio.com/awesome-song-history'
playlist_id = '3BCcE8T945z1MnfPWkFsfX'
super ( YourScrapper , self ). __init__ ( player_url , playlist_id ) Overide Metode get_song_history , baris pertama harus:
soup , driver = self . scrap_webpage ()Tambahkan scraper Anda di folder Tes:
class TestYourScraper ( GenericScraperTest ):
scraper = scraping . YourScraper ()Tambahkan scraper Anda di kelas SRC.PlayList_UPDater.Updater:
self . scrapers = [
scraping . KSHEScraper (),
scraping . EagleScraper (),
scraping . YourScraper () # New scraper!
]Anda siap!