पायथन का उपयोग करके Pinterest डेटा को कैसे परिमार्जन करें

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

यह लेख Python और Playwright, एक मजबूत स्वचालन लाइब्रेरी का उपयोग करके Pinterest को स्क्रैप करने की विधि का अन्वेषण करता है। Pinterest, जो अपने समृद्ध दृश्य सामग्री के लिए जाना जाता है, डेटा विश्लेषण या स्वचालन पहलों के लिए एक उपजाऊ भूमि के रूप में कार्य करता है। विशेष रूप से, खोज परिणामों से छवि URL निकालना शोध या व्यावसायिक उपक्रमों के लिए महत्वपूर्ण हो सकता है।

Playwright कई ब्राउज़रों में इंटरैक्टिव सत्रों के स्वचालन को सक्षम बनाता है। इसमें नेटवर्क अनुरोधों को रोकने जैसी विशेषताएँ शामिल हैं, जो ट्रैफ़िक से सीधे डेटा निष्कर्षण की अनुमति देती हैं। इसके अतिरिक्त, इसका नो-रेंडर मोड में संचालित होने की क्षमता स्क्रैपिंग दक्षता और विस्तार क्षमता को बढ़ाती है। प्रॉक्सी का उपयोग, हालांकि वैकल्पिक है, गुमनामी सुनिश्चित करने और संभावित प्रतिबंधों को दरकिनार करने में सहायता के लिए अनुशंसित है, जिससे Pinterest से दृश्य सामग्री को एकत्रित करने के लिए Playwright एक पसंदीदा उपकरण बन जाता है।

Python के लिए Playwright सेट करना

शुरू करने से पहले, आपको अपने Python वातावरण में Playwrightस्थापित करने की आवश्यकता है। आप इसे PIP का उपयोग करके स्थापित कर सकते हैं:


pip install playwright

एक बार स्थापित होने के बाद, आपको ब्राउज़र बायनेरिज़ स्थापित करने की आवश्यकता होगी:


playwright install

अब, आइए Pinterest छवि URL को परिमार्जन करने के लिए एक मूल स्क्रिप्ट देखें।

Pinterest से डेटा निकालने की प्रक्रिया

स्क्रिप्ट, जिसका पूरा संस्करण नीचे प्रस्तुत किया गया है, में निम्नलिखित तत्व शामिल हैं:

मुख्य समारोह

मुख्य फ़ंक्शन उपयोगकर्ता इनपुट, जैसे, https://in.pinterest.com/search/pins/?q=halloween%20decor के आधार पर एक Pinterest खोज क्वेरी URL बनाता है, और फिर इसे capture_images_from_pinterest फ़ंक्शन में पास करता है।

अवरोधन और फ़िल्टरिंग

Playwright पृष्ठ नेटवर्क प्रतिक्रियाओं के लिए सुनता है page.on('response', ...).

handle_response फ़ंक्शन नेटवर्क प्रतिक्रियाओं को फ़िल्टर करता है, यह सुनिश्चित करते हुए कि केवल वही संसाधन जिनका प्रकार छवि (image) है और जिनके URL .jpg पर समाप्त होते हैं, उन्हें कैप्चर किया जाए।

CSV को डेटा सहेजना

छवि URL इकट्ठा करने के बाद, हम उन्हें pinterest_images.csv नाम के एक CSV फ़ाइल में सहेजते हैं, जिससे स्क्रैप डेटा को निर्यात और विश्लेषण में आसान हो जाता है।

पूर्ण कोड

यहाँ Python कोड है जो Pinterest खोज परिणामों को स्क्रैप करता है और सभी छवि URL को निकालता है:


import asyncio
from playwright.async_api import async_playwright

async def capture_images_from_pinterest(url):
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()

        # स्टोर छवि '.jpg' समाप्त होने के साथ urls
        image_urls = []

        # नेटवर्क प्रतिक्रियाओं को रोकने और संसाधित करने के लिए कार्य
        page.on('response', lambda response: handle_response(response, image_urls))

        # URL पर नेविगेट करें
        await page.goto(url)

        # नेटवर्क गतिविधि को व्यवस्थित करने के लिए प्रतीक्षा करें (यदि आवश्यक हो तो समायोजित करें)
        await page.wait_for_timeout(10000)

        # ब्राउज़र बंद करें
        await browser.close()

        return image_urls

# हैंडलर फ़ंक्शन .jpg छवि url के लिए जांच करने के लिए
def handle_response(response, image_urls):
    if response.request.resource_type == 'image':
        url = response.url
        if url.endswith('.jpg'):
            image_urls.append(url)

# Async कार्य चलाने के लिए मुख्य कार्य
async def main(query):
    url = f"https://in.pinterest.com/search/pins/?q={query}"
    images = await capture_images_from_pinterest(url)
    
    # छवियों को एक CSV फ़ाइल में सहेजें
    with open('pinterest_images.csv', 'w') as file:
        for img_url in images:
            file.write(f"{img_url}\n")

    print(f"Saved {len(images)} image URLs to pinterest_images.csv")

# Async मुख्य फ़ंक्शन चलाएं
query = 'halloween decor'
asyncio.run(main(query))

Playwright में प्रॉक्सी की स्थापना करना

Pinterest को स्क्रैप करना रेट लिमिटिंग को ट्रिगर कर सकता है या यदि आप एक ही IP पते से बहुत अधिक अनुरोध करते हैं तो प्रतिबंध भी लग सकता है। प्रॉक्सी इस समस्या को कम करने में मदद करते हैं क्योंकि वे आपके अनुरोधों को अलग-अलग IP पतों के माध्यम से रूट करते हैं, जिससे ऐसा प्रतीत होता है कि कई उपयोगकर्ता Pinterest ब्राउज़ कर रहे हैं।

क्यों का उपयोग करें:

  • आईपी ​​प्रतिबंध से बचें: यदि यह असामान्य गतिविधि का पता लगाता है तो Pinterest आपके IP पते को अस्थायी रूप से अवरुद्ध कर सकता है। आईपी ​​पते को घुमाकर प्रॉक्सी इससे बचने में मदद करता है।
  • स्केलेबिलिटी: प्रॉक्सी का उपयोग करने से ब्लॉकिंग के जोखिम को कम करते हुए, स्क्रैपिंग प्रयासों के स्केलिंग की अनुमति मिलती है।
  • अनुरोध सीमाओं को बढ़ाएं: प्रॉक्सी का उपयोग करने से आप दर सीमाओं को ट्रिगर किए बिना अधिक डेटा को स्क्रैप कर सकते हैं।

आप Playwright में launch मेथड के proxy आर्ग्यूमेंट का उपयोग करके आसानी से प्रॉक्सी सेट कर सकते हैं। इस उदाहरण में, "http://your-proxy-address:port" को अपने प्रॉक्सी सर्वर के पते, पोर्ट नंबर और प्रॉक्सी क्रेडेंशियल्स से बदलें।


async def capture_images_from_pinterest(url):
    async with async_playwright() as p:
        # यहां प्रॉक्सी जोड़ें
        browser = await p.chromium.launch(headless=True, proxy={"server": "http://your-proxy-address:port", "username": "username", "password": "password"})
        page = await browser.new_page()

नतीजतन, एक प्रॉक्सी के साथ Playwright को एकीकृत करना स्वचालन की प्रभावशीलता को बढ़ाता है। यह संयोजन न केवल एंटी-बॉट तंत्र द्वारा उत्पन्न जोखिमों को कम करता है, बल्कि डेटा संग्रह प्रक्रियाओं की समग्र दक्षता को भी बढ़ाता है।

Pinterest डेटा को स्क्रैप करने की चुनौतियां

कई चुनौतियां हैं जो उपयोगकर्ताओं का सामना कर सकते हैं, जब Playright का उपयोग करने के लिए Pinterest डेटा को स्क्रैप करें:

  • डायनेमिक कंटेंट लोडिंग: Pinterest डायनेमिक कंटेंट लोडिंग तकनीकों का उपयोग करता है, जिसमें अनंत स्क्रॉलिंग और आलसी-लोडेड छवियां शामिल हैं। यह स्क्रैपिंग टूल की आवश्यकता है जो एसिंक्रोनस डेटा लोडिंग को प्रभावी ढंग से संभाल सकते हैं।
  • एंटी-स्क्रैपिंग उपाय: Pinterest जैसी वेबसाइटें स्वचालित डेटा निष्कर्षण प्रयासों में बाधा डालने के लिए विभिन्न एंटी-स्क्रैपिंग तंत्र, जैसे दर सीमित करने के लिए नियोजित करती हैं।

परदे के पीछे और हेडलेस मोड में Playwright का उपयोग प्रभावी रूप से इन चुनौतियों को कम कर सकता है, जिससे ब्लॉक के जोखिम को कम किया जा सकता है और डेटा निष्कर्षण दक्षता बढ़ाया जा सकता है।

टिप्पणियाँ:

0 टिप्पणियाँ