वेब स्क्रैपिंग के लिए 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% अनुपालन सुनिश्चित करते हैं। हम अपनी सेवाओं के जिम्मेदार उपयोग की प्रोत्साहना करते हैं। अधिक जानकारी के लिए, कृपया हमारी सेवा की शर्तें और गोपनीयता नीति पर जाएं।
अधिक

CAPTCHA 2026 हल करने के लिए सबसे अच्छा एक्सटेंशन क्या है?
ऑनलाइन सुरक्षा की लगातार बदलती दुनिया में, कैप्चा चुनौतियां इंटरनेट उपयोगकर्ताओं के लिए एक सामान्य बाधा बन गई हैं।

Sora Fujimoto
12-Dec-2025

लुमिप्रॉक्सी: प्रीमियम प्रॉक्सी वेब स्क्रैपिंग एंड डेटा एकत्रीकरण के लिए
इस लेख में, हम आपको लुमीप्रॉक्सी क्या है और जो वे प्रदान करते हैं उन सेवाओं के बारे में बताएंगे।

Emma Foster
12-Dec-2025

Genlogin: आपके वेब ऑटोमेशन अनुभव को क्रांति लाओ
इस लेख में, हम आपको Genlogin क्या है और सेवाएं जो वे प्रदान करते हैं दिखाएंगे।

Aloísio Vítor
12-Dec-2025

प्रॉक्सीज.आईओ : किसी भी कार्य के लिए व्यक्तिगत प्रॉक्सी
इस लेख में, हम आपको दिखाएंगे कि Proxys.io क्या है और वे कौन सी सेवाएं प्रदान करते हैं।

Nikolai Smirnov
12-Dec-2025

टैबप्रॉक्सी: अच्छी कीमत विदेशी रिजिडेंशियल प्रॉक्सी
इस लेख में, हम आपको टैबप्रॉक्सी क्या है और वे क्या सेवाएं प्रदान करते हैं दिखाएंगे।

Rajinder Singh
12-Dec-2025

IP2World रिजिडेंशियल प्रॉक्सी: नेतृत्व कर रहे वैश्विक आईपी प्रॉक्सी समाधान
इस लेख में, हम आपको IP2World क्या है और वे कौन सी सेवाएं प्रदान करते हैं दिखाएंगे।

Ethan Collins
12-Dec-2025

