Python का उपयोग करके Spotify प्लेलिस्ट डेटा कैसे स्क्रैप करें

टिप्पणियाँ: 0

डेटा स्क्रैपिंग को वेबसाइटों से डेटा के स्वचालित एकत्रीकरण के रूप में वर्णित किया जा सकता है, और Spotify के मामले में, इसका अर्थ है कि एनालिटिक्स के लिए ट्रैक्स, कलाकार, एल्बम और अन्य उपयोगी तत्वों के बारे में जानकारी एकत्र करना या संगीत अनुप्रयोग बनाना।

Python का उपयोग करने से Spotify प्लेलिस्ट के साथ -साथ कलाकार के नाम, और ट्रैक निकालने में मदद मिलती है। यह Spotify API के लिए संभव है, जो आपको कानूनी रूप से और नियमों का उल्लंघन किए बिना डेटा प्राप्त करने की अनुमति देता है। हालांकि, यदि एपीआई आवश्यक उपकरण प्रदान नहीं करता है, तो आप वेब स्क्रैपिंग का उपयोग कर सकते हैं। BeautifulSoup और Selenium Spotify को स्क्रैप करने के लिए एकदम सही हैं।

इस Spotify डेटा स्क्रैपिंग ट्यूटोरियल में, आप सीखेंगे कि लाइब्रेरी कैसे स्थापित करें, Spotify API के साथ काम करें, स्क्रैपिंग लागू करें, और CSV में डेटा सहेजें।

आवश्यक पुस्तकालयों को स्थापित करें

इसलिए, हम पहले से ही जानते हैं कि Python का उपयोग करके Spotify डेटा को स्क्रैप करने के लिए कौन से उपकरण उपयुक्त हैं। अब, आइए देखें कि आवश्यक पुस्तकालयों को कैसे स्थापित किया जाए:


pip install beautifulsoup4
pip install selenium
pip install requests

तो, हर एक किस उद्देश्य से काम करता है?

  • BeautifulSoup एक बहुत ही आसान लाइब्रेरी है जो वेब पेजों से सूचना पुनर्प्राप्ति के लिए अनुमति देता है। यह वेब पेज के HTML कोड के माध्यम से ऊपर से नीचे तक जाता है और फिर आवश्यक तत्वों को छीनता है। इसका उपयोग स्थैतिक सामग्री को संसाधित करने में भी किया जाता है, उदाहरण के लिए, एक पृष्ठ से पटरियों की सूची निकालने के लिए जो वर्तमान में खुला है।
  • जबकि BeautifulSoup स्थिर साइटों के साथ महान काम करता है, यह गतिशील सामग्री के साथ काम करने के लिए पर्याप्त नहीं है। डायनेमिक वेबसाइटों को उपयोगकर्ता की सगाई के कुछ रूप की आवश्यकता होती है और यह वह जगह है जहां Selenium में कदम बढ़ाते हैं। यह लाइब्रेरी आपको प्रोग्राम रूप से वेब पेज खोलने, बटन दबाकर पाठ, पाठ, स्क्रॉल करने और साइट पर विभिन्न तत्वों के साथ संलग्न करने में मदद करती है।
  • अनुरोध लाइब्रेरी का उपयोग HTTP अनुरोध बनाने के लिए किया जाता है। इसके साथ, आप आसानी से एक गेट या पोस्ट अनुरोध भेज सकते हैं और एपीआई को संभाल सकते हैं। यदि आपको साइट के साथ बहुत सगाई की आवश्यकता नहीं है, जैसे कि Selenium के माध्यम से, तो अनुरोधों का उपयोग करना अधिक सरल और सीधा है।

वेब ड्राइवर डाउनलोड करें

Selenium को ब्राउज़र को नियंत्रित करने और Spotify के साथ बातचीत करने के लिए सक्षम करने के लिए, इसे एक वेब ड्राइवर की आवश्यकता होती है। यह एक विशेष सॉफ्टवेयर है जो स्वचालित रूप से पृष्ठ खोल सकता है, बटन पर क्लिक कर सकता है, आदि।

हम ChromeDriver का उपयोग करने जा रहे हैं, इसे आधिकारिक वेबसाइट से डाउनलोड करें और फिर इसे अनपैक करें और इसके लिए पथ को सहेजें।


from selenium import webdriver

driver_path = "C:/webdriver/chromedriver.exe"  # अपने रास्ते से बदलें
driver = webdriver.Chrome(driver_path)
driver.get("https://google.com")



डेटा को स्क्रैप करने के लिए फ़ंक्शन को परिभाषित करें

Spotify प्लेलिस्ट को स्क्रैप करते समय, आपको पृष्ठ के HTML कोड का विश्लेषण करने की आवश्यकता है और यह निर्धारित करना होगा कि किन तत्वों में आवश्यक जानकारी है। आइए नीचे दिए गए चरण-दर-चरण गाइड के बाद Python Spotify प्लेलिस्ट स्क्रैपिंग के साथ शुरू करें।

1. HTML पृष्ठ विश्लेषण

ब्राउज़र में, F12 दबाकर, आप HTML संरचना देख सकते हैं जहां आवश्यक तत्व स्थित हैं। ऐसी संरचना का उदाहरण:


<div class="tracklist-row">
    <span class="track-name">name</span>
    <span class="artist-name">artist</span>
    <span class="track-duration">3:45</span>
</div>

2. Selenium की स्थापना

जानकारी एकत्र करने के लिए, हम HTML को पार्सिंग के लिए डायनेमिक कंटेंट और ब्यूटीफुल लोड करने के लिए Selenium का उपयोग करेंगे।


from selenium import webdriver
import time
from bs4 import BeautifulSoup

3. एक प्लेलिस्ट से डेटा एकत्र करने के लिए कार्य करें

नीचे Python का उपयोग करके वेब स्क्रैपिंग Spotify का एक उदाहरण दिया गया है, जो प्लेलिस्ट पेज खोलता है, HTML कोड का विश्लेषण करता है, और गीतों के बारे में जानकारी देता है।

यह काम किस प्रकार करता है:

  1. ब्राउज़र प्लेलिस्ट पेज खोलता है।
  2. Selenium स्वचालित रूप से सभी गानों को लोड करने के लिए पृष्ठ को स्क्रॉल करता है।
  3. BeautifulSoup HTML कोड का विश्लेषण करता है और कक्षाओं द्वारा आवश्यक तत्वों को ढूंढता है।
  4. ट्रैक शीर्षक, कलाकार और अवधि के बारे में जानकारी निकाली गई है।

def get_spotify_playlist_data(playlist_url):
   # Selenium के माध्यम से ब्राउज़र लॉन्च करें
   options = webdriver.ChromeOptions()
   options.add_argument("--headless")  # हेडलेस मोड में चलाएं (ब्राउज़र विंडो के बिना)
   driver = webdriver.Chrome(options=options)

   driver.get(playlist_url)
   time.sleep(5)  # पेज को लोड करने की प्रतीक्षा करें

   # सभी पटरियों को लोड करने के लिए पेज को स्क्रॉल करें
   driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

   # पृष्ठ का HTML कोड प्राप्त करें
   html = driver.page_source
   driver.quit()

   soup = BeautifulSoup(html, "lxml")

   # सभी ट्रैक खोजें
   tracks = []
   for track in soup.find_all(class_="IjYxRc5luMiDPhKhZVUH UpiE7J6vPrJIa59qxts4"):
       name = track.find(
           class_="e-9541-text encore-text-body-medium encore-internal-color-text-base btE2c3IKaOXZ4VNAb8WQ standalone-ellipsis-one-line").text
       artist = track.find(class_="e-9541-text encore-text-body-small").find('a').text
       duration = track.find(
           class_="e-9541-text encore-text-body-small encore-internal-color-text-subdued l5CmSxiQaap8rWOOpEpk").text

       tracks.append({"track title": name, "artist": artist, "duration": duration})

   return tracks


फ़ंक्शन को कॉल करें

फ़ंक्शन को कॉल करने के लिए, Spotify प्लेलिस्ट URL को पास करें। फ़ंक्शन इसे खोलता है, Python के साथ Spotify प्लेलिस्ट डेटा को स्क्रैप करता है, और गीत के शीर्षक, कलाकारों और अवधि की एक सूची देता है।


playlist_url = "https://open.spotify.com/album/7aJuG4TFXa2hmE4z1yxc3n?si=W7c1b1nNR3C7akuySGq_7g" 

data = get_spotify_playlist_data(playlist_url)
for track in data:
   print(track)

Spotify API के लिए प्रमाणीकरण हैंडलिंग

Spotify के API से जानकारी एकत्र करने के लिए, आपको एक टोकन की आवश्यकता होगी। यह प्रमाणीकरण के माध्यम से प्राप्त किया जा सकता है। आप इसके बिना एपीआई से अनुरोध नहीं कर पाएंगे। अगला भाग विस्तार करेगा कि यह कैसे प्राप्त किया जा सकता है।

1. आवेदन पंजीकृत करें

Spotify डेवलपर डैशबोर्ड पर जाएं, अपने खाते में लॉग इन करें या यदि आपके पास अभी तक एक नहीं है तो एक बनाएं। लॉग इन करने के बाद, एप्लिकेशन को पंजीकृत करें, उस फॉर्म को भरें जिसमें एक नाम और एक विवरण शामिल है। पूरा होने पर, एक क्लाइंट आईडी और क्लाइंट सीक्रेट आपके लिए उत्पन्न होगा।

2. टोकन प्राप्त करें

टोकन प्राप्त करने के लिए, हम Python में अनुरोधों का उपयोग करेंगे।


import requests
import base64

# आपका खाता डेटा
CLIENT_ID = "client_id"
CLIENT_SECRET = "client_secret"

# Base64 में एन्कोडिंग
credentials = f"{CLIENT_ID}:{CLIENT_SECRET}"
encoded_credentials = base64.b64encode(credentials.encode()).decode()

# टोकन प्राप्त करने के लिए एक अनुरोध भेजना
url = "https://accounts.spotify.com/api/token"
headers = {
    "Authorization": f"Basic {encoded_credentials}",
    "Content-Type": "application/x-www-form-urlencoded"
}
data = {"grant_type": "client_credentials"}

response = requests.post(url, headers=headers, data=data)
token = response.json().get("access_token")

print("Access Token:", token)

इस तरह से, हम पहले प्राप्त जानकारी को जोड़ते हैं और इसे एक निश्चित तरीके से एन्क्रिप्ट करते हैं ताकि यह सुनिश्चित हो सके कि टोकन प्राप्त करने के अनुरोध को ठीक से भेजा गया है। यह एक सुरक्षा उपाय है जो कई एपीआई में आम है। उसके बाद, हम टोकन के लिए एक GET अनुरोध भेजते हैं। एक बार जब हम इसे प्राप्त कर लेते हैं, तो इसे कंसोल पर मुद्रित किया जाएगा।

3. अनुरोध करना

एक बार जब आपके पास टोकन होता है, तो आप अनुरोध कर सकते हैं।


artist_id = "6qqNVTkY8uBg9cP3Jd7DAH"
url = f"https://api.spotify.com/v1/artists/{artist_id}"

headers = {"Authorization": f"Bearer {token}"}

response = requests.get(url, headers=headers)
artist_data = response.json()

स्टोर निकाले गए आंकड़े

आगे के विश्लेषण के लिए JSON प्रारूप में एकत्र किए गए डेटा को बचाने के लिए, हम मानक Python लाइब्रेरी का उपयोग करेंगे।


playlist_url = "https://open.spotify.com/album/7aJuG4TFXa2hmE4z1yxc3n?si=W7c1b1nNR3C7akuySGq_7g"


data = get_spotify_playlist_data(playlist_url)


with open('tracks.json', 'w', encoding='utf-8') as json_file:
   json.dump(data, json_file, ensure_ascii=False, indent=4)
   print("Data saved to tracks.json")

Spotify प्लेलिस्ट डेटा को स्क्रैप करने के लिए सर्वोत्तम अभ्यास

नैतिक प्रथाओं का पालन करने से Python का उपयोग करके Spotify स्क्रैपिंग की प्रक्रिया में आसानी होगी। इसके लिए, Spotify का आधिकारिक एपीआई प्राप्त करें क्योंकि यह आपको किसी भी नियम का उल्लंघन किए बिना जानकारी तक कानूनी पहुंच प्रदान करता है। वेब स्क्रैपिंग करते समय, अनुरोधों की दर को थ्रॉटल करना याद रखें यदि एपीआई सर्वर स्ट्रेन से बचने के लिए आपकी सभी आवश्यकताओं की सेवा नहीं कर रहा है।

वेबसाइट की नीति Robots.txt में पाई जाती है, इसलिए वेबसाइट को स्क्रैप करने से पहले देखें। इसके अलावा, प्रॉक्सी सर्वर ब्लॉकों को रोकने में सहायक हैं।

निष्कर्ष

डेटा संग्रह के लिए इस गाइड ने Python Spotify स्क्रैपिंग उदाहरणों के साथ -साथ उचित स्क्रैपिंग प्रक्रिया हैंडलिंग के लिए आवश्यक अतिरिक्त जानकारी को दिखाया है।

आइए प्रमुख बिंदुओं को हाइलाइट करें:

  • जैसा कि BeartherSoup HTML पृष्ठ का विश्लेषण करता है और इसमें शक्तिशाली सूचना संग्रह सुविधाएँ शामिल हैं, यह स्थिर साइटों के लिए पूरी तरह से अनुकूल है।
  • जब यह गतिशील साइटों की बात आती है, जिसमें उपयोगकर्ता इंटरैक्शन की आवश्यकता होती है, तो Selenium अब तक का सबसे अच्छा विकल्प है। यह बटन के स्वचालित धक्का, पृष्ठों को स्क्रॉल करने और गतिशील सामग्री को प्राप्त करने में सक्षम बनाता है।
  • नैतिक स्क्रैपिंग के नियम हैं। उनके बाद किसी को सर्वर को अवरुद्ध करने या ओवरलोड करने से रोका जाएगा। HTML को पार्स करने के बजाय Spotify API का उपयोग करना पसंद किया जाता है।

Python के साथ इन Spotify स्क्रैपिंग टूल का उपयोग करना आपको आसानी से और जल्दी से आवश्यक डेटा एकत्र करने की अनुमति देता है, संगीत सामग्री का विश्लेषण करने की प्रक्रिया का अनुकूलन करता है।

टिप्पणियाँ:

0 टिप्पणियाँ