🥳हमारे शक्तिशाली वेब स्क्रैपिंग टूलकिट तक पहुंचने के लिए स्क्रैपलेस समुदाय में शामिल हों और अपने निःशुल्क परीक्षण का दावा करें!
ब्लॉग पर वापस जाएँ

2024 में प्रॉक्सी के साथ पाइपपेटर का उपयोग कैसे करें

James Thompson
James Thompson

Scraping and Proxy Management Expert

18-Sep-2024

वेब स्क्रैपिंग के दौरान प्रतिबंध से बचने के लिए कई IP पतों पर HTTP अनुरोधों को रूट करना महत्वपूर्ण है। इसलिए इस ट्यूटोरियल में हम एक Pyppeteer प्रॉक्सी बनाने का तरीका सीखेंगे!

पूर्व शर्तें

सुनिश्चित करें कि आपका स्थानीय सिस्टम Python 3.6 या उससे ऊपर चल रहा है।

अगला, नीचे दी गई पंक्ति को निष्पादित करके PyPI से Pyppeteer स्थापित करने के लिए pip का उपयोग करें।

language Copy
pip install pyppeteer

क्या आप लगातार वेब स्क्रैपिंग ब्लॉक से थक चुके हैं?

Scrapeless: उपलब्ध सर्वश्रेष्ठ ऑल-इन-वन ऑनलाइन स्क्रैपिंग समाधान!

हमारे बुद्धिमान, उच्च-प्रदर्शन प्रॉक्सी रोटेशन के साथ गुमनाम रहें और IP-आधारित प्रतिबंधों से बचें:

इसे मुफ्त में आज़माएं!

प्रॉक्सी के रूप में Pyppeteer का उपयोग कैसे करें

शुरू करने के लिए, ident.me से अपना वर्तमान IP पता अनुरोध करने के लिए स्क्रिप्ट scraper.py लिखें।

language Copy
import asyncio
from pyppeteer import launch
 
async def main():
    # एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
    browser = await launch()
    # एक नया पृष्ठ बनाएँ
    page = await browser.newPage()
    # लक्ष्य वेबसाइट पर नेविगेट करें
    await page.goto('https://ident.me')
    # बॉडी एलिमेंट का चयन करें
    body = await page.querySelector('body')
    # चयनित एलिमेंट का टेक्स्ट कंटेंट प्राप्त करें
    content = await page.evaluate('(element) => element.textContent', body)
    # परिणाम डंप करें
    print(content)
    await browser.close()
 
asyncio.get_event_loop().run_until_complete(main())

लक्ष्य पृष्ठ की बॉडी सामग्री प्राप्त करने के लिए, स्क्रिप्ट चलाएँ।

language Copy
python scraper.py

यह आपकी स्क्रिप्ट को एक Pyppeteer प्रॉक्सी शामिल करने के लिए अपडेट करने का समय है। ऐसा करने के लिए, FreeProxyList से एक मुफ्त प्रॉक्सी प्राप्त करें (आप जिसका उपयोग हमने किया था उसका उपयोग करने में सक्षम नहीं हो सकते हैं)।

scraper.py स्क्रिप्ट launch() फ़ंक्शन का उपयोग करता है, जो एक नया ब्राउज़र इंस्टेंस खोलता है और आपको कुछ पैरामीटर पास करने देता है। ब्राउज़र को एक प्रॉक्सी के माध्यम से Pyppeteer अनुरोधों को रूट करने के लिए बताने के लिए --proxy-server पैरामीटर सेट करें। विकल्पों में से एक args है, जो ब्राउज़र प्रक्रिया को भेजने के लिए अतिरिक्त तर्कों की एक सूची है।

language Copy
# ...
async def main():
    # एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
    browser = await launch(args=['--proxy-server=http://20.219.108.109:8080'])
    # एक नया पृष्ठ बनाएँ
    page = await browser.newPage()
# ...

यह पूरा कोड है:

language Copy
import asyncio
from pyppeteer import launch
 
async def main():
    # एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
    browser = await launch(args=['--proxy-server=http://20.219.108.109:8080'])
    # एक नया पृष्ठ बनाएँ
    page = await browser.newPage()
    # लक्ष्य वेबसाइट पर नेविगेट करें
    await page.goto('https://ident.me')
    # बॉडी एलिमेंट का चयन करें
    body = await page.querySelector('body')
    # चयनित एलिमेंट का टेक्स्ट कंटेंट प्राप्त करें
    content = await page.evaluate('(element) => element.textContent', body)
    # परिणाम डंप करें
    print(content)
    await browser.close()
 
asyncio.get_event_loop().run_until_complete(main())

इस बार, जब आप कमांड लाइन विकल्प python scraper.py के साथ स्क्रिप्ट को फिर से चलाते हैं, तो आपके प्रॉक्सी का IP पता स्क्रीन पर दिखाई देना चाहिए।

language Copy
20.219.108.109

प्रॉक्सी के माध्यम से Pyppeteer प्रमाणीकरण

यदि आप प्रीमियम प्रॉक्सी का उपयोग करते हैं तो आपको प्रमाणीकरण के लिए उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होगी। इसके लिए --proxy-auth पैरामीटर का उपयोग करें।

language Copy
# ...
    # एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
    browser = await launch(args=[
        '--proxy-server=http://20.219.108.109:8080'
        '--proxy-auth=<YOUR_USERNAME>:<YOUR_PASSWORD>'
        ])
# ...

वैकल्पिक रूप से, आप नीचे देखे गए अनुसार पृष्ठ API का उपयोग करके प्रमाणित कर सकते हैं:

language Copy
# ...
    # एक नया पृष्ठ बनाएँ
    page = await browser.newPage()
    await page.authenticate({ 'username': '<YOUR_USERNAME>', 'password': '<YOUR_PASSWORD>' })
# ...

गतिशील प्रॉक्सी को कॉन्फ़िगर करने के लिए Pyppeteer का उपयोग करें

ब्लैकलिस्ट होने से बचने के लिए, आपको अपने द्वारा पहले उपयोग किए गए स्थिर प्रॉक्सी के बजाय वेब स्क्रैपिंग के लिए एक गतिशील प्रॉक्सी का उपयोग करना होगा। Pyppeteer का उपयोग करके, आप कई ब्राउज़र इंस्टेंस बना सकते हैं, जिनमें से प्रत्येक में एक अद्वितीय प्रॉक्सी सेटअप है।

शुरू करने के लिए, अतिरिक्त मुफ्त प्रॉक्सी प्राप्त करें और उनकी एक सूची संकलित करें:

language Copy
# ...
import random
 
proxies = [
'http://20.219.108.109:8080',
'http://210.22.77.94:9002',
'http://103.150.18.218:80',
]
# ...

अगला, एक एसिंक्रोनस फ़ंक्शन लिखें जो ident.me पर एक Pyppeteer अनुरोध करता है, एक एसिंक्रोनस फ़ंक्शन का उपयोग करके जो एक तर्क के रूप में एक प्रॉक्सी स्वीकार करता है:

language Copy
# ...
async def init_pyppeteer_proxy_request(url):
    # एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
    browser = await launch(args=[
        f'--proxy-server={url}',
        ])
    # एक नया पृष्ठ बनाएँ
    page = await browser.newPage()
    # लक्ष्य वेबसाइट पर नेविगेट करें
    await page.goto('https://ident.me')
    # बॉडी एलिमेंट का चयन करें
    body = await page.querySelector('body')
    # चयनित एलिमेंट का टेक्स्ट कंटेंट प्राप्त करें
    content = await page.evaluate('(element) => element.textContent', body)
    # परिणाम डंप करें
    print(content)


अब, `main()` फ़ंक्शन को बदलें ताकि वह एक यादृच्छिक रूप से चुने गए प्रॉक्सी के माध्यम से नए निर्मित फ़ंक्शन को कॉल करे:<br>
```language
# ...
async def main():
    for i in range(3):
        await init_pyppeteer_proxy_request(random.choice(proxies))
# ...

आपका कोड इस तरह दिखना चाहिए:

language Copy
import asyncio
from pyppeteer import launch
import random
 
proxies = [
'http://20.219.108.109:8080',
'http://210.22.77.94:9002',
'http://103.150.18.218:80',
]
 
async def init_pyppeteer_proxy_request(url):
    # Create a new headless browser instance
    browser = await launch(args=[
        f'--proxy-server={url}',
        ])
    # Create a new page
    page = await browser.newPage()
    # Navigate to target website
    await page.goto('https://ident.me')
    # Select the body element
    body = await page.querySelector('body')
    # Get the text content of the selected element
    content = await page.evaluate('(element) => element.textContent', body)
    # Dump the result
    print(content)
    await browser.close()
 
async def main():
    for i in range(3):
        await init_pyppeteer_proxy_request(random.choice(proxies))
    
 
asyncio.get_event_loop().run_until_complete(main())

नए फ़ाइल में रिक्वेस्ट बिल्डर द्वारा उत्पादित पाइथन स्क्रैपर कोड रखने के बाद Python Requests (या कोई अन्य HTTP अनुरोध लाइब्रेरी) इंस्टॉल करें:

language Copy
pip install requests

अब जब आपका स्क्रैपर चल रहा है, तो OpenSea के लिए HTML पेज को खुरचा जाएगा और कंसोल पर दिखाया जाएगा.

निष्कर्ष

Pyppeteer के साथ प्रॉक्सी का उपयोग करके आपकी वेब स्क्रैपिंग सफलता में काफी वृद्धि हो सकती है, और अब आप जानते हैं कि स्थिर और गतिशील दोनों प्रकार के प्रॉक्सियों का उपयोग करके अनुरोध कैसे भेजें.

आपने यह भी खोजा कि एक अलग उपकरण कार्य को अधिक तेज़ी से और सटीक रूप से पूरा कर सकता है। यदि आपको बड़े पैमाने पर स्क्रैप करने की आवश्यकता है, बुनियादी ढांचे के बारे में चिंता किए बिना और इस बात का अधिक आश्वासन है कि आपको आवश्यक डेटा प्राप्त होगा, तो Scrapeless का वेब स्क्रैपिंग टूल आपका सहयोगी हो सकता है।

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

सर्वाधिक लोकप्रिय लेख

सूची