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

Scraping and Proxy Management Expert
वेब स्क्रैपिंग के दौरान प्रतिबंध से बचने के लिए कई IP पतों पर HTTP अनुरोधों को रूट करना महत्वपूर्ण है। इसलिए इस ट्यूटोरियल में हम एक Pyppeteer प्रॉक्सी बनाने का तरीका सीखेंगे!
पूर्व शर्तें
सुनिश्चित करें कि आपका स्थानीय सिस्टम Python 3.6 या उससे ऊपर चल रहा है।
अगला, नीचे दी गई पंक्ति को निष्पादित करके PyPI से Pyppeteer स्थापित करने के लिए pip का उपयोग करें।
language
pip install pyppeteer
क्या आप लगातार वेब स्क्रैपिंग ब्लॉक से थक चुके हैं?
Scrapeless: उपलब्ध सर्वश्रेष्ठ ऑल-इन-वन ऑनलाइन स्क्रैपिंग समाधान!
हमारे बुद्धिमान, उच्च-प्रदर्शन प्रॉक्सी रोटेशन के साथ गुमनाम रहें और IP-आधारित प्रतिबंधों से बचें:
इसे मुफ्त में आज़माएं!
प्रॉक्सी के रूप में Pyppeteer का उपयोग कैसे करें
शुरू करने के लिए, ident.me
से अपना वर्तमान IP पता अनुरोध करने के लिए स्क्रिप्ट scraper.py
लिखें।
language
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
python scraper.py
यह आपकी स्क्रिप्ट को एक Pyppeteer प्रॉक्सी शामिल करने के लिए अपडेट करने का समय है। ऐसा करने के लिए, FreeProxyList से एक मुफ्त प्रॉक्सी प्राप्त करें (आप जिसका उपयोग हमने किया था उसका उपयोग करने में सक्षम नहीं हो सकते हैं)।
scraper.py
स्क्रिप्ट launch()
फ़ंक्शन का उपयोग करता है, जो एक नया ब्राउज़र इंस्टेंस खोलता है और आपको कुछ पैरामीटर पास करने देता है। ब्राउज़र को एक प्रॉक्सी के माध्यम से Pyppeteer अनुरोधों को रूट करने के लिए बताने के लिए --proxy-server
पैरामीटर सेट करें। विकल्पों में से एक args
है, जो ब्राउज़र प्रक्रिया को भेजने के लिए अतिरिक्त तर्कों की एक सूची है।
language
# ...
async def main():
# एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
browser = await launch(args=['--proxy-server=http://20.219.108.109:8080'])
# एक नया पृष्ठ बनाएँ
page = await browser.newPage()
# ...
यह पूरा कोड है:
language
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
20.219.108.109
प्रॉक्सी के माध्यम से Pyppeteer प्रमाणीकरण
यदि आप प्रीमियम प्रॉक्सी का उपयोग करते हैं तो आपको प्रमाणीकरण के लिए उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होगी। इसके लिए --proxy-auth
पैरामीटर का उपयोग करें।
language
# ...
# एक नया हेडलेस ब्राउज़र इंस्टेंस बनाएं
browser = await launch(args=[
'--proxy-server=http://20.219.108.109:8080'
'--proxy-auth=<YOUR_USERNAME>:<YOUR_PASSWORD>'
])
# ...
वैकल्पिक रूप से, आप नीचे देखे गए अनुसार पृष्ठ API का उपयोग करके प्रमाणित कर सकते हैं:
language
# ...
# एक नया पृष्ठ बनाएँ
page = await browser.newPage()
await page.authenticate({ 'username': '<YOUR_USERNAME>', 'password': '<YOUR_PASSWORD>' })
# ...
गतिशील प्रॉक्सी को कॉन्फ़िगर करने के लिए Pyppeteer का उपयोग करें
ब्लैकलिस्ट होने से बचने के लिए, आपको अपने द्वारा पहले उपयोग किए गए स्थिर प्रॉक्सी के बजाय वेब स्क्रैपिंग के लिए एक गतिशील प्रॉक्सी का उपयोग करना होगा। Pyppeteer का उपयोग करके, आप कई ब्राउज़र इंस्टेंस बना सकते हैं, जिनमें से प्रत्येक में एक अद्वितीय प्रॉक्सी सेटअप है।
शुरू करने के लिए, अतिरिक्त मुफ्त प्रॉक्सी प्राप्त करें और उनकी एक सूची संकलित करें:
language
# ...
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
# ...
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
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
pip install requests
अब जब आपका स्क्रैपर चल रहा है, तो OpenSea के लिए HTML पेज को खुरचा जाएगा और कंसोल पर दिखाया जाएगा.
निष्कर्ष
Pyppeteer के साथ प्रॉक्सी का उपयोग करके आपकी वेब स्क्रैपिंग सफलता में काफी वृद्धि हो सकती है, और अब आप जानते हैं कि स्थिर और गतिशील दोनों प्रकार के प्रॉक्सियों का उपयोग करके अनुरोध कैसे भेजें.
आपने यह भी खोजा कि एक अलग उपकरण कार्य को अधिक तेज़ी से और सटीक रूप से पूरा कर सकता है। यदि आपको बड़े पैमाने पर स्क्रैप करने की आवश्यकता है, बुनियादी ढांचे के बारे में चिंता किए बिना और इस बात का अधिक आश्वासन है कि आपको आवश्यक डेटा प्राप्त होगा, तो Scrapeless का वेब स्क्रैपिंग टूल आपका सहयोगी हो सकता है।
स्क्रैपलेस में, हम लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से पालन करते हुए केवल सार्वजनिक रूप से उपलब्ध डेटा तक पहुंचते हैं। इस ब्लॉग की सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई भी अवैध या उल्लंघनकारी गतिविधियां शामिल नहीं हैं। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए कोई गारंटी नहीं देते हैं और सभी दायित्व से इनकार करते हैं। किसी भी स्क्रैपिंग गतिविधियों में शामिल होने से पहले, अपने कानूनी सलाहकार से परामर्श लें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।