作为居住在法国的经典摇滚的忠实拥护者,我对缺乏优质的经典摇滚广播感到非常沮丧。我在密苏里州的圣路易斯呆了四个月,每天有机会听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!
]你们都设定了!