वेब स्क्रैपिंग के लिए aiohttp का उपयोग कैसे करें

Rajinder Singh
Deep Learning Researcher
23-Sep-2024
aiohttp का क्या है?

aiohttp Python के लिए एक शक्तिशाली अतुल्यकालिक HTTP क्लाइंट/सर्वर फ्रेमवर्क है। यह Python की asyncio
लाइब्रेरी का उपयोग करता है ताकि समवर्ती नेटवर्क संचालन को सक्षम किया जा सके, जिससे यह वेब स्क्रैपिंग, वेब डेवलपमेंट और किसी भी नेटवर्क-बद्ध ऑपरेशन जैसे कार्यों के लिए अत्यधिक कुशल हो जाता है।
सुविधाएँ:
- अतुल्यकालिक I/O: गैर-अवरोधी नेटवर्क संचालन के लिए
asyncio
के ऊपर बनाया गया। - क्लाइंट और सर्वर सपोर्ट: HTTP क्लाइंट और सर्वर दोनों कार्यान्वयन प्रदान करता है।
- वेबसोकेट्स सपोर्ट: वेबसोकेट्स प्रोटोकॉल के लिए मूल समर्थन।
- उच्च प्रदर्शन: एक साथ कई कनेक्शन को कुशलतापूर्वक संभालना।
- विस्तार योग्यता: उन्नत अनुकूलन के लिए मिडलवेयर, सिग्नल और प्लगइन्स का समर्थन करता है।
पूर्वापेक्षाएँ
aiohttp
का उपयोग शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- Python 3.7 या उच्चतर
- Python पैकेज को स्थापित करने के लिए pip
aiohttp के साथ शुरुआत करना
स्थापना
pip
का उपयोग करके aiohttp
स्थापित करें:
bash
pip install aiohttp
बेसिक उदाहरण: GET अनुरोध करना
यहां बताया गया है कि aiohttp
का उपयोग करके सरल GET अनुरोध कैसे करें:
python
import asyncio
import aiohttp
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
status = response.status
text = await response.text()
print(f'स्थिति कोड: {status}')
print('प्रतिक्रिया बॉडी:', text)
if __name__ == '__main__':
asyncio.run(fetch('https://httpbin.org/get'))
वेब स्क्रैपिंग उदाहरण: एक वेबसाइट से उद्धरण स्क्रैप करना
आइए उद्धरण स्क्रैप करने के लिए वेबसाइट को स्क्रैप करें ताकि उद्धरण और उनके लेखकों को निकाला जा सके:
python
import asyncio
import aiohttp
from bs4 import BeautifulSoup
async def fetch_content(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def scrape_quotes():
url = 'http://quotes.toscrape.com/'
html = await fetch_content(url)
soup = BeautifulSoup(html, 'html.parser')
quotes = soup.find_all('div', class_='quote')
for quote in quotes:
text = quote.find('span', class_='text').get_text(strip=True)
author = quote.find('small', class_='author').get_text(strip=True)
print(f'{text} — {author}')
if __name__ == '__main__':
asyncio.run(scrape_quotes())
आउटपुट:
“दुनिया जैसा हमने इसे बनाया है, यह हमारी सोच की एक प्रक्रिया है। इसे हमारी सोच को बदले बिना नहीं बदला जा सकता।” — अल्बर्ट आइंस्टीन
“यह हमारे चुनाव हैं, हैरी, जो दिखाते हैं कि हम वास्तव में क्या हैं, हमारी क्षमताओं से कहीं अधिक।” — जे.के. राउलिंग
... (अतिरिक्त उद्धरण)
CapSolver और aiohttp के साथ कैप्चा को हैंडल करना
इस खंड में, हम यह पता लगाएंगे कि कैप्चा को बायपास करने के लिए CapSolver को aiohttp
के साथ कैसे एकीकृत किया जाए। CapSolver एक बाहरी सेवा है जो विभिन्न प्रकार के कैप्चा को हल करने में मदद करती है, जिसमें ReCaptcha V2 और captcha शामिल हैं।
हम CapSolver का उपयोग करके ReCaptcha V2 को हल करने और फिर उस पृष्ठ तक पहुँचने का प्रदर्शन करेंगे जिसके लिए कैप्चा हल करने की आवश्यकता होती है।
उदाहरण: CapSolver और aiohttp के साथ ReCaptcha V2 को हल करना
सबसे पहले, CapSolver पैकेज स्थापित करें:
bash
pip install capsolver
अब, यहां बताया गया है कि आप ReCaptcha V2 को कैसे हल कर सकते हैं और अपने अनुरोध में समाधान का उपयोग कैसे कर सकते हैं:
python
import asyncio
import os
import aiohttp
import capsolver
# अपनी CapSolver API कुंजी सेट करें
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "आपकी CapSolver API कुंजी")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com") # कैप्चा वाला पृष्ठ URL
SITE_KEY = os.getenv("SITE_KEY", "SITE_KEY") # कैप्चा साइट कुंजी
async def solve_recaptcha_v2():
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyless",
"websiteURL": PAGE_URL,
"websiteKey": SITE_KEY
})
return solution['solution']['gRecaptchaResponse']
async def access_protected_page():
captcha_response = await solve_recaptcha_v2()
print("कैप्चा हल हो गया!")
async with aiohttp.ClientSession() as session:
data = {
'g-recaptcha-response': captcha_response,
# वेबसाइट द्वारा आवश्यक होने पर अन्य फ़ॉर्म डेटा शामिल करें
}
async with session.post(PAGE_URL, data=data) as response:
content = await response.text()
print('पृष्ठ सामग्री:', content)
if __name__ == '__main__':
asyncio.run(access_protected_page())
नोट: PAGE_URL
को कैप्चा वाले पृष्ठ के URL से बदलें और SITE_KEY
को कैप्चा की साइट कुंजी से बदलें। साइट कुंजी आमतौर पर कैप्चा विजेट के भीतर पृष्ठ के HTML स्रोत कोड में पाई जाती है।
CapSolver के साथ captcha को हल करना
captcha को हल करने के लिए, capsolver.solve()
फ़ंक्शन में कार्य प्रकार को समायोजित करें:
python
async def solve_captcha():
solution = capsolver.solve({
"type": "captchaTaskProxyless",
"websiteURL": PAGE_URL,
"websiteKey": SITE_KEY
})
return solution['solution']['gRecaptchaResponse']
aiohttp के साथ प्रॉक्सी को हैंडल करना
अपने अनुरोधों को प्रॉक्सी के माध्यम से रूट करने के लिए, proxy
पैरामीटर निर्दिष्ट करें:
python
import asyncio
import aiohttp
async def fetch(url, proxy):
async with aiohttp.ClientSession() as session:
async with session.get(url, proxy=proxy) as response:
return await response.text()
async def main():
proxy = 'http://username:password@proxyserver:port'
url = 'https://httpbin.org/ip'
content = await fetch(url, proxy)
print('प्रतिक्रिया बॉडी:', content)
if __name__ == '__main__':
asyncio.run(main())
aiohttp के साथ कुकीज़ को हैंडल करना
आप CookieJar
का उपयोग करके कुकीज़ का प्रबंधन कर सकते हैं:
python
import asyncio
import aiohttp
async def main():
jar = aiohttp.CookieJar()
async with aiohttp.ClientSession(cookie_jar=jar) as session:
await session.get('https://httpbin.org/cookies/set?name=value')
# कुकीज़ प्रदर्शित करें
for cookie in jar:
print(f'{cookie.key}: {cookie.value}')
if __name__ == '__main__':
asyncio.run(main())
उन्नत उपयोग: कस्टम हेडर और POST अनुरोध
आप aiohttp
के साथ कस्टम हेडर भेज सकते हैं और POST अनुरोध कर सकते हैं:
python
import asyncio
import aiohttp
async def main():
headers = {
'User-Agent': 'Mozilla/5.0 (compatible)',
'Accept-Language': 'en-US,en;q=0.5',
}
data = {
'username': 'testuser',
'password': 'testpass',
}
async with aiohttp.ClientSession() as session:
async with session.post('https://httpbin.org/post', headers=headers, data=data) as response:
json_response = await response.json()
print('प्रतिक्रिया JSON:', json_response)
if __name__ == '__main__':
asyncio.run(main())
बोनस कोड
CapSolver पर शीर्ष कैप्चा समाधानों के लिए अपना बोनस कोड प्राप्त करें: scrape। इसे भुनाने के बाद, आपको प्रत्येक रिचार्ज के बाद अतिरिक्त 5% बोनस मिलेगा, असीमित बार।
निष्कर्ष
aiohttp
के साथ, आप अतुल्यकालिक वेब स्क्रैपिंग कार्यों को कुशलतापूर्वक कर सकते हैं और एक साथ कई नेटवर्क संचालन को संभाल सकते हैं। इसे CapSolver के साथ एकीकृत करने से आप ReCaptcha V2 और captcha जैसे कैप्चा को बायपास कर सकते हैं, जिससे आप ऐसी सामग्री तक पहुँच सकते हैं जो अन्यथा प्रतिबंधित हो सकती है।
अपनी विशिष्ट आवश्यकताओं के अनुरूप इन उदाहरणों का विस्तार करने में संकोच न करें। हमेशा उन वेबसाइटों की सेवा की शर्तों का सम्मान करना याद रखें जिन्हें आप स्क्रैप करते हैं और कानूनी दिशानिर्देशों का पालन करते हैं।
खुश स्क्रैपिंग!
अनुपालन अस्वीकरण: इस ब्लॉग पर प्रदान की गई जानकारी केवल सूचनात्मक उद्देश्यों के लिए है। CapSolver सभी लागू कानूनों और विनियमों का पालन करने के लिए प्रतिबद्ध है। CapSolver नेटवर्क का उपयोग अवैध, धोखाधड़ी या दुरुपयोग करने वाली गतिविधियों के लिए करना सख्त वर्जित है और इसकी जांच की जाएगी। हमारे कैप्चा समाधान उपयोगकर्ता अनुभव को बेहतर बनाने के साथ-साथ सार्वजनिक डेटा क्रॉलिंग के दौरान कैप्चा कठिनाइयों को हल करने में 100% अनुपालन सुनिश्चित करते हैं। हम अपनी सेवाओं के जिम्मेदार उपयोग की प्रोत्साहना करते हैं। अधिक जानकारी के लिए, कृपया हमारी सेवा की शर्तें और गोपनीयता नीति पर जाएं।
अधिक

वेब स्क्रैपिंग में इमेज CAPTCHAs को कैसे हल करें: 2025 के लिए एक संपूर्ण गाइड
2025 में CapSolver के साथ प्रभावी ढंग से इमेज CAPTCHA को हल करना सीखें

Rajinder Singh
23-Jan-2025

reCAPTCHA पहचान क्या है? शुरुआती लोगों के लिए एक मार्गदर्शिका
reCAPTCHA इमेज ग्रिड से जूझ रहे हैं? जानें कि कैसे Capsolver का AI-संचालित पहचान 'सभी का चयन करें' चुनौतियों को तुरंत हल करता है। API एकीकरण, ब्राउज़र एक्सटेंशन और 95%+ सटीकता के साथ CAPTCHA को स्वचालित करने के लिए प्रो टिप्स जानें

Rajinder Singh
23-Jan-2025

2025 में वेब स्क्रैपिंग करते समय Cloudflare चुनौती को कैसे बायपास करें
2025 में निर्बाध वेब स्क्रैपिंग के लिए Cloudflare Challenge और Turnstile को कैसे बायपास करें, यह जानें। Capsolver इंटीग्रेशन, TLS फ़िंगरप्रिंटिंग टिप्स और CAPTCHA नर्क से बचने के लिए सामान्य त्रुटियों के समाधान खोजें। समय बचाएँ और अपने डेटा निष्कर्षण को स्केल करें।

Emma Foster
23-Jan-2025

एक्सटेंशन द्वारा क्लाउडफ्लेयर टर्नस्टाइल CAPTCHA कैसे हल करें
Capsolver के एक्सटेंशन से Cloudflare Turnstile CAPTCHA को कैसे बायपास करें, यह जानें। Chrome, Firefox और Puppeteer जैसे ऑटोमेशन टूल्स के लिए इंस्टॉलेशन गाइड।

Ethan Collins
23-Jan-2025

reCAPTCHA Site Key क्या है और यह कैसे प्राप्त करें?
reCAPTCHA Site Key को मैन्युअली या Capsolver जैसे टूल्स से कैसे ढूँढें, सामान्य समस्याओं को कैसे ठीक करें और डेवलपर्स और वेब स्क्रैपिंग के लिए CAPTCHA सॉल्विंग को कैसे ऑटोमेट करें, यह जानें।

Anh Tuan
23-Jan-2025

2025 में reCAPTCHA पहचान के लिए शीर्ष 5 कैप्चा सॉल्वर
2025 के शीर्ष 5 CAPTCHA सॉल्वरों का अन्वेषण करें, जिसमें तेज़ reCAPTCHA पहचान के लिए AI-संचालित CapSolver भी शामिल है। यहाँ गति, मूल्य और सटीकता की तुलना करें

Anh Tuan
23-Jan-2025