
Rajinder Singh
Deep Learning Researcher

Curl_cffi एक पायथन लाइब्रेरी है जो CFFI (C फॉरेन फंक्शन इंटरफेस) का उपयोग करके libcurl लाइब्रेरी के लिए कुशल, कम-स्तरीय बाइंडिंग प्रदान करता है। यह आपको curl कमांड-लाइन टूल के समान उच्च प्रदर्शन और बारीक-दांतेदार नियंत्रण के साथ HTTP अनुरोध करने की अनुमति देता है, लेकिन पायथन के भीतर। यह उन वेब स्क्रैपिंग कार्यों के लिए विशेष रूप से उपयोगी है जिनके लिए गति और उन्नत कॉन्फ़िगरेशन की आवश्यकता होती है।
विशेषताएं:
libcurl की गति का लाभ उठाता है।curl_cffi का उपयोग करने में डाइव करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित स्थापित हैं:
उबंटू/डेबियन सिस्टम पर, आपको libcurl विकास हेडर स्थापित करने की आवश्यकता हो सकती है:
sudo apt-get install libcurl4-openssl-dev
pip का उपयोग करके curl_cffi स्थापित करें:
pip install curl_cffi
यहां एक GET अनुरोध करने के लिए curl_cffi का उपयोग करने का एक मूल उदाहरण दिया गया है:
from curl_cffi import requests
# GET अनुरोध करें
response = requests.get('https://httpbin.org/get')
# स्थिति कोड जांचें
print(f'स्थिति कोड: {response.status_code}')
# प्रतिक्रिया सामग्री प्रिंट करें
print('प्रतिक्रिया बॉडी:', response.text)
आइए जानकारी निकालने के लिए किसी वेबपेज को स्क्रैप करें। हम सभी उद्धरणों के साथ-साथ उनके लेखकों को प्राप्त करने के लिए Quotes to Scrape का उपयोग करेंगे।
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 को हल करने का प्रदर्शन करेंगे और फिर उस पेज की सामग्री को स्क्रैप करेंगे जिसके लिए पहले कैप्चा को हल करने की आवश्यकता होती है।
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> के भीतर।
यदि आपको ReCaptcha के बजाय captcha को हल करने की आवश्यकता है, तो capsolver.solve() फ़ंक्शन में कार्य प्रकार बदलें:
def solve_captcha(url, site_key):
solution = capsolver.solve({
"type": "captchaTaskProxyless",
"websiteURL": url,
"websiteKey": site_key
})
return solution['solution']['gRecaptchaResponse']
यदि आपको अपने अनुरोधों को किसी प्रॉक्सी के माध्यम से रूट करने की आवश्यकता है, तो curl_cffi इसे सीधा बनाता है:
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)
आप पायथन के http.cookiejar मॉड्यूल से CookieJar का उपयोग करके कुकीज़ का प्रबंधन कर सकते हैं:
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}')
आप curl_cffi के साथ कस्टम हेडर भेज सकते हैं और POST अनुरोध कर सकते हैं:
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 जैसे कैप्चा को बायपास कर सकते हैं, जो उन सामग्रियों तक पहुंचने में सक्षम बनाता है जिन्हें अन्यथा स्क्रैप करना मुश्किल होगा।
अपनी विशिष्ट स्क्रैपिंग आवश्यकताओं के अनुरूप इन उदाहरणों का विस्तार करने में संकोच न करें। हमेशा उन वेबसाइटों की सेवा की शर्तों का सम्मान करना याद रखें जिन्हें आप स्क्रैप करते हैं और कानूनी दिशानिर्देशों का पालन करते हैं।
खुश स्क्रैपिंग!
जानें कि क्लाउडफ़्लेयर एरर 1020 एक्सेस अस्वीकृत के क्या कारण होते हैं, कैसे वेब एप्लिकेशन फ़ायरवॉल और बॉट डिटेक्शन काम करते हैं, और विकासकर्ता कैसे वैध स्वचालन प्रक्रियाओं में गलत सकारात्मकों को कम कर सकते हैं।

सीखें कैसे कैपसॉल्वर n8n टेम्पलेट का उपयोग AWS WAF-सुरक्षित उत्पाद पृष्ठों को मॉनिटर करने, चुनौतियां हल करने, मूल्य निकालने, परिवर्तनों की तुलना करने और स्वचालित रूप से चेतावनियां ट्रिगर करने के लिए करें।
