作為居住在法國的經典搖滾的忠實擁護者,我對缺乏優質的經典搖滾廣播感到非常沮喪。我在密蘇里州的聖路易斯呆了四個月,每天有機會聽Kshe 95,演奏我最喜歡的經典搖滾音樂。不幸的是,當他們阻止法國時,我無法聽這張收音機。幸運的是,他們的網站顯示了當前播放的曲調以及以前的一些樂曲。
我決定使自己成為一個空的Spotify播放列表,並自動添加Kshe Tracks。我還希望能夠添加其他類似的經典搖滾廣播中的歌曲。因此,我構建了一個可重複使用的體系結構,該體系結構使能夠註冊不同的網絡刮刀以獲取無線電播放歷史記錄並將其添加到我的播放列表中。
到目前為止,我能夠從這些收音機中獲得歌曲:
如果您想提供幫助,請隨意使用我!
為了使它起作用,這是該怎麼做。
首先,您需要設置Spotify開發人員帳戶,並註冊一個應用程序。在這裡找到如何。創建應用程序後,您將可以訪問以下匯率:
client_idclient_secretredirect_uri查找您的user_id (您的spotify用戶名),並將這4個憑據添加到名為.spotify-token.json的文件中。您在這裡有一個模板:.spotify-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 。
以下是通過KSHE廣播中的最新歌曲更新播放列表的所需步驟:
make start-api 。該應用現在應該運行http://localhost:9999 。http://localhost:9999/authmake update-playlist以獲取播放列表中的最新歌曲。 到目前為止,支持的電話是:
GET , localhost:9999/api :檢查API是否已啟動GET , localhost:9999/auth :身份驗證3600秒GET , localhost:9999/api/update_playlist :使用如果要添加另一個網站以填充播放列表,則可以在src.scraping模塊中編寫新的刮板。
請按照以下步驟這樣做:
創建YourScrapper名稱以Scraper結尾的類
(儘管應該明確它爬網的哪個網站)。
使該類從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 ()在測試文件夾中添加刮板:
class TestYourScraper ( GenericScraperTest ):
scraper = scraping . YourScraper ()在src.playlist_updater.updater類中添加刮板:
self . scrapers = [
scraping . KSHEScraper (),
scraping . EagleScraper (),
scraping . YourScraper () # New scraper!
]你們都設定了!