بصفتي معجبًا كبيرًا بـ Classic Rock Living في فرنسا ، أشعر بالإحباط الشديد بسبب عدم وجود راديو موسيقى الروك الكلاسيكي الجيد الذي لدينا. لقد أمضيت أربعة أشهر في سانت لويس ، مو ، وأتيحت لي الفرصة للاستماع إلى KSHE 95 كل يوم ، ولعب بعض أغاني موسيقى الروك الكلاسيكية المفضلة. لسوء الحظ ، لا يمكنني الاستماع إلى هذا الراديو في فرنسا لأنها تمنعه. لحسن الحظ ، يعرض موقع الويب الخاص بهم اللحن الذي يلعب حاليًا ، بالإضافة إلى عدد قليل من المشاركات السابقة.
قررت أن أجعل نفسي قائمة تشغيل Spotify فارغة ، وإضافة تلقائيًا في مسارات KSHE. أردت أيضًا أن أكون قادرًا على إضافة أغاني من راديو موسيقى الروك الكلاسيكي الآخر. لذلك قمت ببناء بنية قابلة لإعادة الاستخدام تتيح تسجيل كاشفات الويب المختلفة للحصول على تاريخ تشغيل الراديو وإضافة ذلك إلى قائمة التشغيل الخاصة بي.
حتى الآن ، أتمكن من الحصول على الأغاني من أجهزة الراديو هذه:
لا تتردد في Ping Me إذا كنت تريد المساعدة!
لجعلها تعمل ، إليك ما يجب فعله.
أولاً ، ستحتاج إلى إعداد حساب Spotify Developer الخاص بك ، وتسجيل تطبيق. ابحث عن كيف هنا. بمجرد إنشاء تطبيقك ، سيكون لديك إمكانية الوصول إلى crendentials التالية:
client_idclient_secretredirect_uri ابحث عن user_id (اسم المستخدم Spotify الخاص بك) وأضف بيانات الاعتماد الأربعة هذه في ملف يسمى .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 : تحقق من أن واجهة برمجة التطبيقات قد انتهتGET ، localhost:9999/auth : مصادقة لمدة 3600 ثانيةGET ، localhost:9999/api/update_playlist : تحديث قائمة التشغيل معإذا كنت ترغب في إضافة موقع ويب آخر لإلغاء قائمة التشغيل ، فيمكنك كتابة Sr.Scraping 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 ) Overide طريقة 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!
]أنت كل مجموعة!