2025 में Scrapy और Playwright के साथ वेब स्क्रैपिंग चुनौतियों को कैसे हल करें

Emma Foster
Machine Learning Engineer
12-Nov-2024

Scrapy-Playwright क्या है?
Scrapy-Playwright एक मिडलवेयर है जो Scrapy, Python के लिए एक तेज़ और शक्तिशाली वेब स्क्रैपिंग फ़्रेमवर्क, को Playwright, एक ब्राउज़र ऑटोमेशन लाइब्रेरी के साथ एकीकृत करता है। यह संयोजन Scrapy को Playwright की गतिशील सामग्री को प्रस्तुत करने, वेब पेजों के साथ इंटरैक्ट करने और ब्राउज़र संदर्भों को निर्बाध रूप से प्रबंधित करने की क्षमता का लाभ उठाकर जावास्क्रिप्ट-भारी वेबसाइटों को संभालने की अनुमति देता है।
Scrapy-Playwright का उपयोग क्यों करें?
जबकि Scrapy स्थिर वेबसाइटों को स्क्रैप करने के लिए उत्कृष्ट है, कई आधुनिक वेबसाइटें सामग्री को गतिशील रूप से प्रस्तुत करने के लिए जावास्क्रिप्ट पर बहुत अधिक निर्भर करती हैं। पारंपरिक Scrapy स्पाइडर इन साइटों से जूझ सकते हैं, अक्सर महत्वपूर्ण डेटा गायब होते हैं या जटिल पृष्ठ संरचनाओं को नेविगेट करने में विफल रहते हैं। Scrapy-Playwright इस अंतर को पाटता है, जिससे Scrapy एक हेडलेस ब्राउज़र को नियंत्रित करने में सक्षम होता है, यह सुनिश्चित करता है कि सभी गतिशील सामग्री पूरी तरह से लोड हो गई है और स्क्रैपिंग के लिए सुलभ है।
Scrapy-Playwright का उपयोग करने के लाभ
- जावास्क्रिप्ट रेंडरिंग: जावास्क्रिप्ट का उपयोग करके गतिशील रूप से लोड होने वाली वेबसाइटों को आसानी से स्क्रैप करें।
- हेडलेस ब्राउज़िंग: प्रदर्शन को अनुकूलित करते हुए, एक दृश्यमान ब्राउज़र के बिना स्क्रैपिंग कार्य करें।
- उन्नत इंटरैक्शन: बटन पर क्लिक करने, फॉर्म भरने और पृष्ठों के माध्यम से नेविगेट करने जैसे जटिल इंटरैक्शन को संभालें।
- असिंक्रोनस ऑपरेशन: स्क्रैपिंग कार्यों को तेज करने के लिए Playwright की असीमित क्षमताओं का लाभ उठाएं।
स्थापना
Scrapy-Playwright के साथ शुरुआत करने के लिए, आपको Scrapy और Playwright दोनों को स्थापित करना होगा। यहां बताया गया है कि आप अपने वातावरण को कैसे सेट कर सकते हैं:
-
Scrapy स्थापित करें:
bashpip install scrapy
-
Scrapy-Playwright स्थापित करें:
bashpip install scrapy-playwright
-
Playwright ब्राउज़र स्थापित करें:
Playwright स्थापित करने के बाद, आपको आवश्यक ब्राउज़र बाइनरी स्थापित करने की आवश्यकता है।
bashplaywright install
शुरुआत करना
एक नया Scrapy प्रोजेक्ट सेट अप करना
सबसे पहले, यदि आपने पहले से नहीं किया है, तो एक नया Scrapy प्रोजेक्ट बनाएँ:
bash
scrapy startproject myproject
cd myproject
Playwright को कॉन्फ़िगर करना
अगला, आपको अपने Scrapy प्रोजेक्ट की सेटिंग में Playwright को सक्षम करना होगा। settings.py
खोलें और निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
python
# settings.py
# Playwright डाउनलोडर मिडलवेयर को सक्षम करें
DOWNLOADER_MIDDLEWARES = {
'scrapy_playwright.middleware.ScrapyPlaywrightDownloadHandler': 543,
}
# HTTP और HTTPS के लिए डाउनलोड हैंडलर निर्दिष्ट करें
DOWNLOAD_HANDLERS = {
'http': 'scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler',
'https': 'scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler',
}
# Playwright सेटिंग्स को सक्षम करें
TWISTED_REACTOR = 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'
# Playwright सेटिंग्स (वैकल्पिक)
PLAYWRIGHT_BROWSER_TYPE = 'chromium' # 'chromium', 'firefox', या 'webkit' हो सकता है
PLAYWRIGHT_LAUNCH_OPTIONS = {
'headless': True,
}
मूल उपयोग
एक स्पाइडर बनाना
सेटअप पूरा होने के बाद, आइए एक साधारण स्पाइडर बनाएँ जो एक जावास्क्रिप्ट-प्रस्तुत वेबसाइट को स्क्रैप करने के लिए Playwright का उपयोग करता है। उदाहरण के लिए, हम एक काल्पनिक साइट को स्क्रैप करेंगे जो सामग्री को गतिशील रूप से लोड करती है।
spiders
निर्देशिका के अंदर एक नया स्पाइडर फ़ाइल dynamic_spider.py
बनाएँ:
python
# spiders/dynamic_spider.py
import scrapy
from scrapy_playwright.page import PageCoroutine
class DynamicSpider(scrapy.Spider):
name = "dynamic"
start_urls = ["https://example.com/dynamic"]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(
url,
meta={
"playwright": True,
"playwright_page_coroutines": [
PageCoroutine("wait_for_selector", "div.content"),
],
},
)
async def parse(self, response):
# जावास्क्रिप्ट द्वारा सामग्री प्रस्तुत करने के बाद डेटा निकालें
for item in response.css("div.content"):
yield {
"title": item.css("h2::text").get(),
"description": item.css("p::text").get(),
}
# यदि आवश्यक हो तो पेजिनेशन या अतिरिक्त इंटरैक्शन को संभालें
जावास्क्रिप्ट-प्रस्तुत सामग्री को संभालना
ऊपर दिए गए उदाहरण में:
playwright: True
: Scrapy को इस अनुरोध के लिए Playwright का उपयोग करने के लिए सूचित करता है।playwright_page_coroutines
: Playwright के साथ किए जाने वाले कार्यों को निर्दिष्ट करता है। यहां, यह पार्सिंग से पहले यह सुनिश्चित करने के लिए एक चयनकर्ताdiv.content
की प्रतीक्षा करता है कि गतिशील सामग्री लोड हो गई है।- असिंक्रोनस
parse
विधि: प्रतिक्रिया को प्रभावी ढंग से संभालने के लिए async क्षमताओं का लाभ उठाता है।
CapSolver के साथ कैप्चा को हल करना
वेब स्क्रैपिंग में महत्वपूर्ण चुनौतियों में से एक कैप्चा से निपटना है, जिन्हें स्वचालित पहुंच को रोकने के लिए डिज़ाइन किया गया है। CapSolver एक मजबूत समाधान है जो कैप्चा-समाधान सेवाएँ प्रदान करता है, जिसमें Playwright जैसे ब्राउज़र ऑटोमेशन टूल के साथ एकीकरण शामिल है। इस खंड में, हम यह पता लगाएंगे कि कैप्चा को निर्बाध रूप से संभालने के लिए Scrapy-Playwright के साथ CapSolver को कैसे एकीकृत किया जाए।
CapSolver क्या है?
CapSolver एक कैप्चा-समाधान सेवा है जो विभिन्न प्रकार के कैप्चा को हल करने की प्रक्रिया को स्वचालित करती है, जिसमें captcha और reCAPTCHA शामिल हैं। अपने स्क्रैपिंग वर्कफ़्लो के साथ CapSolver को एकीकृत करके, आप कैप्चा चुनौतियों को बायपास कर सकते हैं और मैनुअल हस्तक्षेप के बिना अपने स्क्रैपिंग कार्यों के प्रवाह को बनाए रख सकते हैं।
Scrapy-Playwright के साथ CapSolver को एकीकृत करना
Scrapy-Playwright के साथ CapSolver को एकीकृत करने के लिए, आपको यह करना होगा:
- CapSolver ब्राउज़र एक्सटेंशन प्राप्त करें: CapSolver एक ब्राउज़र एक्सटेंशन प्रदान करता है जो ब्राउज़र संदर्भों के भीतर कैप्चा को हल करने को स्वचालित करता है।
- Playwright को CapSolver एक्सटेंशन लोड करने के लिए कॉन्फ़िगर करें: Playwright ब्राउज़र लॉन्च करते समय, कैप्चा को हल करने के लिए CapSolver एक्सटेंशन लोड करें।
- कस्टमाइज्ड Playwright संदर्भ का उपयोग करने के लिए Scrapy अनुरोधों को संशोधित करें: सुनिश्चित करें कि आपके Scrapy अनुरोध CapSolver एक्सटेंशन लोड किए गए Playwright संदर्भ का उपयोग करते हैं।
Python में उदाहरण कार्यान्वयन
नीचे Scrapy-Playwright के साथ CapSolver को एकीकृत करने के लिए चरण-दर-चरण मार्गदर्शिका दी गई है, जो उदाहरण कोड के साथ पूरी है।
1. CapSolver ब्राउज़र एक्सटेंशन प्राप्त करें
सबसे पहले, CapSolver ब्राउज़र एक्सटेंशन डाउनलोड करें और इसे अपनी प्रोजेक्ट डायरेक्टरी में रखें। मान लें कि एक्सटेंशन CapSolver.Browser.Extension
पर स्थित है।
2. एक्सटेंशन को कॉन्फ़िगर करें:
- CapSolver एक्सटेंशन निर्देशिका में कॉन्फ़िगरेशन फ़ाइल
./assets/config.json
का पता लगाएँ। - विकल्प
enabledForcaptcha
कोtrue
पर सेट करें और स्वचालित समाधान के लिएcaptchaMode
कोtoken
पर समायोजित करें।
उदाहरण config.json
:
json
{
"enabledForcaptcha": true,
"captchaMode": "token"
// अन्य सेटिंग्स समान रहती हैं
}
3. एक्सटेंशन लोड करने के लिए Scrapy सेटिंग्स अपडेट करें
Playwright को CapSolver एक्सटेंशन लोड करने के लिए कॉन्फ़िगर करने के लिए अपनी settings.py
को संशोधित करें। आपको एक्सटेंशन के लिए पथ निर्दिष्ट करना होगा और Playwright को आवश्यक तर्क पास करना होगा।
python
# settings.py
import os
from pathlib import Path
# मौजूदा Playwright सेटिंग्स
PLAYWRIGHT_BROWSER_TYPE = 'chromium'
PLAYWRIGHT_LAUNCH_OPTIONS = {
'headless': False, # एक्सटेंशन लोड करने के लिए गलत होना चाहिए
'args': [
'--disable-extensions-except={}'.format(os.path.abspath('CapSolver.Browser.Extension')),
'--load-extension={}'.format(os.path.abspath('CapSolver.Browser.Extension')),
],
}
# सुनिश्चित करें कि ट्विस्टेड रिएक्टर सेट है
TWISTED_REACTOR = 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'
नोट: ब्राउज़र एक्सटेंशन लोड करने के लिए ब्राउज़र को गैर-हेडलेस मोड में चलने की आवश्यकता होती है। इसलिए, 'headless': False
सेट करें।
3. एक स्पाइडर बनाएं जो कैप्चा को संभालता है
CapSolver एक्सटेंशन का उपयोग करके कैप्चा के साथ इंटरैक्ट करने के लिए एक नया स्पाइडर बनाएँ या मौजूदा स्पाइडर को संशोधित करें।
python
# spiders/captcha_spider.py
import scrapy
from scrapy_playwright.page import PageCoroutine
import asyncio
class CaptchaSpider(scrapy.Spider):
name = "captcha_spider"
start_urls = ["https://site.example/captcha-protected"]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(
url,
meta={
"playwright": True,
"playwright_page_coroutines": [
PageCoroutine("wait_for_selector", "iframe[src*='captcha']"),
PageCoroutine("wait_for_timeout", 1000), # एक्सटेंशन को संसाधित करने के लिए प्रतीक्षा करें
],
"playwright_context": "default",
},
callback=self.parse_captcha
)
async def parse_captcha(self, response):
page = response.meta["playwright_page"]
# captcha चेकबॉक्स या फ़्रेम का पता लगाएँ और तदनुसार इंटरैक्ट करें
try:
# captcha iframe के उपलब्ध होने की प्रतीक्षा करें
await page.wait_for_selector("iframe[src*='captcha']", timeout=10000)
frames = page.frames
captcha_frame = None
for frame in frames:
if 'captcha' in frame.url:
captcha_frame = frame
break
if captcha_frame:
# captcha चेकबॉक्स पर क्लिक करें
await captcha_frame.click("div#checkbox")
# CapSolver द्वारा कैप्चा हल होने की प्रतीक्षा करें
await page.wait_for_selector("div.captcha-success", timeout=60000) # आवश्यकतानुसार चयनकर्ता को समायोजित करें
self.logger.info("Captcha solved successfully.")
else:
self.logger.warning("captcha iframe not found.")
except Exception as e:
self.logger.error(f"Error handling captcha: {e}")
# कैप्चा हल होने के बाद पृष्ठ को पार्स करने के साथ आगे बढ़ें
for item in response.css("div.content"):
yield {
"title": item.css("h2::text").get(),
"description": item.css("p::text").get(),
}
# यदि आवश्यक हो तो पेजिनेशन या अतिरिक्त इंटरैक्शन को संभालें
4. स्पाइडर चलाना
सुनिश्चित करें कि सभी निर्भरताएँ स्थापित हैं और अपने स्पाइडर को इस प्रकार चलाएँ:
bash
scrapy crawl captcha_spider
उन्नत सुविधाएँ
एक बार जब आप मूल बातों से परिचित हो जाते हैं, तो Scrapy-Playwright आपके स्क्रैपिंग प्रोजेक्ट को बेहतर बनाने के लिए कई उन्नत सुविधाएँ प्रदान करता है।
कई पृष्ठों को संभालना
कई पृष्ठों को स्क्रैप करना या किसी वेबसाइट के माध्यम से नेविगेट करना Playwright की नेविगेशन क्षमताओं का उपयोग करके सुव्यवस्थित किया जा सकता है।
python
# spiders/multi_page_spider.py
import scrapy
from scrapy_playwright.page import PageCoroutine
class MultiPageSpider(scrapy.Spider):
name = "multipage"
start_urls = ["https://example.com/start"]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(
url,
meta={
"playwright": True,
"playwright_page_coroutines": [
PageCoroutine("wait_for_selector", "div.list"),
PageCoroutine("evaluate", "window.scrollTo(0, document.body.scrollHeight)"),
],
},
)
async def parse(self, response):
# पहले पृष्ठ से डेटा निकालें
for item in response.css("div.list-item"):
yield {
"name": item.css("span.name::text").get(),
"price": item.css("span.price::text").get(),
}
# अगले पृष्ठ पर नेविगेट करें
next_page = response.css("a.next::attr(href)").get()
if next_page:
yield scrapy.Request(
response.urljoin(next_page),
callback=self.parse,
meta={
"playwright": True,
"playwright_page_coroutines": [
PageCoroutine("wait_for_selector", "div.list"),
],
},
)
Playwright संदर्भों का उपयोग करना
Playwright कई ब्राउज़र संदर्भों के निर्माण की अनुमति देता है, जो सत्र, कुकीज़ या समानांतर स्क्रैपिंग कार्यों को संभालने के लिए उपयोगी हो सकते हैं।
python
# settings.py
PLAYWRIGHT_CONTEXTS = {
"default": {
"viewport": {"width": 1280, "height": 800},
"user_agent": "CustomUserAgent/1.0",
},
"mobile": {
"viewport": {"width": 375, "height": 667},
"user_agent": "MobileUserAgent/1.0",
"is_mobile": True,
},
}
अपने स्पाइडर में, संदर्भ निर्दिष्ट करें:
python
# spiders/context_spider.py
import scrapy
class ContextSpider(scrapy.Spider):
name = "context"
start_urls = ["https://example.com"]
def start_requests(self):
yield scrapy.Request(
self.start_urls[0],
meta={
"playwright": True,
"playwright_context": "mobile",
},
)
async def parse(self, response):
# आपका पार्सिंग तर्क यहां
pass
मिडलवेयर के साथ एकीकरण
Scrapy-Playwright को पुनरावृत्ति, प्रॉक्सी प्रबंधन या कस्टम हेडर जैसे कार्यों को बेहतर बनाने के लिए अन्य मिडलवेयर के साथ एकीकृत किया जा सकता है।
python
# settings.py
DOWNLOADER_MIDDLEWARES.update({
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 550,
'scrapy_playwright.middleware.ScrapyPlaywrightDownloadHandler': 543,
})
# कस्टम हेडर सेट करने का उदाहरण
DEFAULT_REQUEST_HEADERS = {
'User-Agent': 'MyCustomAgent/1.0',
'Accept-Language': 'en-US,en;q=0.9',
}
सर्वोत्तम अभ्यास
Scrapy-Playwright और CapSolver का अधिकतम लाभ उठाने के लिए, निम्नलिखित सर्वोत्तम प्रथाओं पर विचार करें:
- Playwright उपयोग का अनुकूलन करें: केवल उन अनुरोधों के लिए Playwright का उपयोग करें जिनके लिए संसाधनों को बचाने के लिए जावास्क्रिप्ट रेंडरिंग की आवश्यकता होती है।
- ब्राउज़र संदर्भों का प्रबंधन करें: प्रदर्शन में सुधार और ओवरहेड को कम करने के लिए जहां संभव हो ब्राउज़र संदर्भों का पुन: उपयोग करें।
- समयबाह्य को कुशलतापूर्वक संभालें: धीरे-धीरे लोड होने वाले पृष्ठों को प्रबंधित करने के लिए उपयुक्त समयबाह्य और त्रुटि हैंडलिंग सेट करें।
- रोबोट्स.txt और सेवा की शर्तों का सम्मान करें: हमेशा सुनिश्चित करें कि आपकी स्क्रैपिंग गतिविधियाँ लक्षित वेबसाइट की नीतियों का पालन करती हैं।
- थ्रॉटलिंग और देरी को लागू करें: विनम्र स्क्रैपिंग प्रथाओं को लागू करके लक्षित सर्वर को अधिभारित करने से बचें।
- अपनी CapSolver API कुंजी सुरक्षित करें: अपनी स्क्रिप्ट में API कुंजी को हार्डकोड करने से बचने और अपनी स्क्रिप्ट में संवेदनशील जानकारी जैसे API कुंजी को सुरक्षित रूप से संग्रहीत करें।
- स्क्रैपिंग गतिविधि की निगरानी और लॉग करें: समस्याओं की त्वरित पहचान और समाधान के लिए अपने स्क्रैपिंग कार्यों का ट्रैक रखें।
बोनस कोड
CapSolver: scrape पर शीर्ष कैप्चा समाधानों के लिए अपना बोनस कोड प्राप्त करें। इसे रिडीम करने के बाद, आपको प्रत्येक रिचार्ज के बाद 5% अतिरिक्त बोनस मिलेगा, असीमित बार।

निष्कर्ष
Scrapy-Playwright वेब स्क्रैपिंग के लिए एक गेम-चेंजर है, जो स्थिर और गतिशील सामग्री निष्कर्षण के बीच की खाई को पाटता है। Scrapy के मजबूत फ़्रेमवर्क और Playwright के उन्नत ब्राउज़र ऑटोमेशन की शक्ति का लाभ उठाकर, आप सबसे चुनौतीपूर्ण स्क्रैपिंग कार्यों को आसानी से निपटा सकते हैं। इसके अलावा, CapSolver को एकीकृत करने से आप कैप्चा चुनौतियों को दूर कर सकते हैं, यह सुनिश्चित करते हुए कि सबसे संरक्षित वेबसाइटों से भी निर्बाध डेटा संग्रह हो।
चाहे आप ई-कॉमर्स साइटों, सोशल मीडिया प्लेटफार्मों या किसी भी जावास्क्रिप्ट-भारी वेबसाइट को स्क्रैप कर रहे हों, Scrapy-Playwright CapSolver के साथ मिलकर आपको सफल होने के लिए आवश्यक उपकरण प्रदान करता है। सर्वोत्तम प्रथाओं का पालन करके और इन शक्तिशाली एकीकरणों का लाभ उठाकर, आप अपनी विशिष्ट आवश्यकताओं के अनुरूप कुशल, विश्वसनीय और स्केलेबल वेब स्क्रैपिंग समाधान बना सकते हैं।
अपने स्क्रैपिंग प्रोजेक्ट को ऊपर उठाना चाहते हैं? Scrapy-Playwright और CapSolver में गोता लगाएँ, और डेटा संग्रह और स्वचालन के लिए नई संभावनाओं को अनलॉक करें।
अनुपालन अस्वीकरण: इस ब्लॉग पर प्रदान की गई जानकारी केवल सूचनात्मक उद्देश्यों के लिए है। 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