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

Rajinder Singh
Deep Learning Researcher
17-Sep-2024

Curl_cffi क्या है?
Curl_cffi एक पायथन लाइब्रेरी है जो CFFI (C फॉरेन फंक्शन इंटरफेस) का उपयोग करके libcurl
लाइब्रेरी के लिए कुशल, कम-स्तरीय बाइंडिंग प्रदान करता है। यह आपको curl
कमांड-लाइन टूल के समान उच्च प्रदर्शन और बारीक-दांतेदार नियंत्रण के साथ HTTP अनुरोध करने की अनुमति देता है, लेकिन पायथन के भीतर। यह उन वेब स्क्रैपिंग कार्यों के लिए विशेष रूप से उपयोगी है जिनके लिए गति और उन्नत कॉन्फ़िगरेशन की आवश्यकता होती है।
विशेषताएं:
- उच्च प्रदर्शन: तेज़ HTTP अनुरोधों के लिए
libcurl
की गति का लाभ उठाता है। - थ्रेड सुरक्षा: मल्टी-थ्रेडेड अनुप्रयोगों में उपयोग करने के लिए सुरक्षित।
- उन्नत सुविधाएँ: प्रॉक्सी, SSL/TLS कॉन्फ़िगरेशन, कस्टम हेडर और बहुत कुछ का समर्थन करता है।
- कम-स्तरीय नियंत्रण: अनुरोध और प्रतिक्रिया प्रक्रिया पर विस्तृत नियंत्रण प्रदान करता है।
पूर्वापेक्षाएँ
curl_cffi
का उपयोग करने में डाइव करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित स्थापित हैं:
- Python 3.6 या उच्चतर
- आपके सिस्टम पर स्थापित libcurl
- पायथन पैकेज स्थापित करने के लिए pip
उबंटू/डेबियन सिस्टम पर, आपको libcurl
विकास हेडर स्थापित करने की आवश्यकता हो सकती है:
bash
sudo apt-get install libcurl4-openssl-dev
Curl_cffi से शुरुआत करना
स्थापना
pip
का उपयोग करके curl_cffi
स्थापित करें:
bash
pip install curl_cffi
मूल उदाहरण: GET अनुरोध करना
यहां एक GET अनुरोध करने के लिए curl_cffi
का उपयोग करने का एक मूल उदाहरण दिया गया है:
python
from curl_cffi import requests
# GET अनुरोध करें
response = requests.get('https://httpbin.org/get')
# स्थिति कोड जांचें
print(f'स्थिति कोड: {response.status_code}')
# प्रतिक्रिया सामग्री प्रिंट करें
print('प्रतिक्रिया बॉडी:', response.text)
वेब स्क्रैपिंग उदाहरण: किसी वेबसाइट से उद्धरण स्क्रैप करना
आइए जानकारी निकालने के लिए किसी वेबपेज को स्क्रैप करें। हम सभी उद्धरणों के साथ-साथ उनके लेखकों को प्राप्त करने के लिए Quotes to Scrape का उपयोग करेंगे।
python
from curl_cffi import requests
from bs4 import BeautifulSoup
# स्क्रैप करने के लिए URL
url = 'http://quotes.toscrape.com/'
# GET अनुरोध करें
response = requests.get(url)
# BeautifulSoup का उपयोग करके HTML सामग्री को पार्स करें
soup = BeautifulSoup(response.content, 'html.parser')
# सभी उद्धरण तत्व खोजें
quotes = soup.find_all('div', class_='quote')
# उद्धरण और लेखकों को निकालें और प्रदर्शित करें
for quote in quotes:
text = quote.find('span', class_='text').get_text()
author = quote.find('small', class_='author').get_text()
print(f'{text} — {author}')
आउटपुट:
“जिस दुनिया को हमने बनाया है, वह हमारे सोचने की एक प्रक्रिया है। इसे हमारे सोचने को बदले बिना नहीं बदला जा सकता।” — अल्बर्ट आइंस्टीन
“यह हमारे चुनाव हैं, हैरी, जो दिखाते हैं कि हम वास्तव में क्या हैं, हमारी क्षमताओं से कहीं अधिक।” — जे.के. राउलिंग
... (अतिरिक्त उद्धरण)
कैप्चा को कैपसॉल्वर और कर्ल_सीएफएफआई के साथ हैंडल करना
इस खंड में, हम अन्वेषण करेंगे कि कैप्चा को बायपास करने के लिए CapSolver को curl_cffi
के साथ कैसे एकीकृत किया जाए। कैपसॉल्वर एक बाहरी सेवा है जो विभिन्न प्रकार के कैप्चा को हल करने में मदद करती है, जिसमें ReCaptcha V2 और captcha शामिल हैं, जो आमतौर पर वेबसाइटों पर उपयोग किए जाते हैं।
हम CapSolver का उपयोग करके ReCaptcha V2 को हल करने का प्रदर्शन करेंगे और फिर उस पेज की सामग्री को स्क्रैप करेंगे जिसके लिए पहले कैप्चा को हल करने की आवश्यकता होती है।
उदाहरण: कैपसॉल्वर और कर्ल_सीएफएफआई के साथ ReCaptcha V2 को हल करना
python
import os
import capsolver
from curl_cffi import requests
# संवेदनशील जानकारी के लिए पर्यावरण चर का उपयोग करने पर विचार करें
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Your CapSolver API Key")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com") # कैप्चा वाले पेज का URL
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "SITE_KEY") # कैप्चा के लिए साइट की
def solve_recaptcha_v2(url, site_key):
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyless",
"websiteURL": url,
"websiteKey": site_key,
"proxy": PROXY
})
return solution['solution']['gRecaptchaResponse']
def main():
print("ReCaptcha V2 को हल करना...")
captcha_solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
print("कैप्चा हल हो गया!")
if __name__ == "__main__":
main()
नोट: PAGE_URL
को कैप्चा वाले पेज के URL से बदलें और PAGE_SITE_KEY
को कैप्चा की साइट की से बदलें। आप साइट की को पेज के HTML स्रोत में पा सकते हैं, आमतौर पर कैप्चा विजेट वाले <div>
के भीतर।
CapSolver के साथ captcha को हल करना
यदि आपको ReCaptcha के बजाय captcha को हल करने की आवश्यकता है, तो capsolver.solve()
फ़ंक्शन में कार्य प्रकार बदलें:
python
def solve_captcha(url, site_key):
solution = capsolver.solve({
"type": "captchaTaskProxyless",
"websiteURL": url,
"websiteKey": site_key
})
return solution['solution']['gRecaptchaResponse']
Curl_cffi के साथ प्रॉक्सी को हैंडल करना
यदि आपको अपने अनुरोधों को किसी प्रॉक्सी के माध्यम से रूट करने की आवश्यकता है, तो curl_cffi
इसे सीधा बनाता है:
python
from curl_cffi import requests
# प्रॉक्सी सेटिंग्स को परिभाषित करें
proxies = {
'http': 'http://username:password@proxyserver:port',
'https': 'https://username:password@proxyserver:port',
}
# प्रॉक्सी का उपयोग करके GET अनुरोध करें
response = requests.get('https://httpbin.org/ip', proxies=proxies)
# प्रतिक्रिया सामग्री प्रिंट करें
print('प्रतिक्रिया बॉडी:', response.text)
Curl_cffi के साथ कुकीज़ को हैंडल करना
आप पायथन के http.cookiejar
मॉड्यूल से CookieJar
का उपयोग करके कुकीज़ का प्रबंधन कर सकते हैं:
python
from curl_cffi import requests
from http.cookiejar import CookieJar
# CookieJar इंस्टेंस बनाएँ
cookie_jar = CookieJar()
# कुकी जार के साथ एक सत्र बनाएँ
session = requests.Session()
session.cookies = cookie_jar
# GET अनुरोध करें
response = session.get('https://httpbin.org/cookies/set?name=value')
# कुकीज़ प्रदर्शित करें
for cookie in session.cookies:
print(f'{cookie.name}: {cookie.value}')
उन्नत उपयोग: कस्टम हेडर और POST अनुरोध
आप curl_cffi
के साथ कस्टम हेडर भेज सकते हैं और POST अनुरोध कर सकते हैं:
python
from curl_cffi import requests
# कस्टम हेडर को परिभाषित करें
headers = {
'User-Agent': 'Mozilla/5.0 (compatible)',
'Accept-Language': 'en-US,en;q=0.5',
}
# POST अनुरोध में भेजने के लिए डेटा
data = {
'username': 'testuser',
'password': 'testpass',
}
# POST अनुरोध करें
response = requests.post('https://httpbin.org/post', headers=headers, data=data)
# JSON प्रतिक्रिया प्रिंट करें
print('प्रतिक्रिया JSON:', response.json())
बोनस कोड
CapSolver पर शीर्ष कैप्चा समाधानों के लिए अपना बोनस कोड का दावा करें: scrape. इसे रिडीम करने के बाद, आपको प्रत्येक रिचार्ज के बाद अतिरिक्त 5% बोनस मिलेगा, असीमित बार।

निष्कर्ष
curl_cffi
के साथ, आप अपने HTTP अनुरोधों पर विस्तृत नियंत्रण रखते हुए कुशलतापूर्वक वेब स्क्रैपिंग कार्य कर सकते हैं। इसे कैपसॉल्वर के साथ एकीकृत करने से आप 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