असंकेतित फिंगरप्रिंट ब्राउज़र Python के लिए: ब्राउज़र उपयोग, Crawl4AI, Scrapling
Specialist in Anti-Bot Strategies
TL;DR:
- स्थानीय हेडलेस ब्राउज़र एक साथ तीन धुरियों पर अपनी स्वचालन को लीक करता है: रनटाइम, फ़िंगरप्रिंट और निकासी IP।
navigator.webdrivertrueहै, फ़िंगरप्रिंट हेडलेस डिफॉल्ट्स कैरी करता है, और हर अनुरोध आपके अपने पते से बाहर जाता है - एंटी-बॉट सिस्टम तीनों को स्कोर करते हैं। - ब्राउज़र उपयोग, Crawl4AI, और Scrapling सभी Chrome DevTools प्रोटोकॉल से बात करते हैं, इसलिए वे एक स्थानीय ब्राउज़र की बजाय एक रिमोट ब्राउज़र को चलाने में सक्षम हैं। प्रत्येक एक
cdp_url(याbrowser_ws_endpoint) स्वीकार करता है; इसे Scrapeless पर इंगित करें और स्वचालन सर्वर-साइड पर चलता है। - Scrapeless स्क्रैपिंग ब्राउज़र एक एंटी-डिटेक्शन क्लाउड ब्राउज़र है: असली क्रोमियम, प्रति-सेशन स्थिर फ़िंगरप्रिंट, और 195+ देशों में आवासीय निकासी।
webdrivertell चला गया है और निकासी IP साफ दिखता है, बिना किसी स्टेल्थ पैच को बनाए रखने की आवश्यकता है। - इंटीग्रेशन प्रति टूल एक लाइन है - कनेक्शन URL। आप परिवर्तन करते हैं कि ब्राउज़र कहां से आ रहा है, न कि आपके स्क्रैपर को कैसे लिखा गया है।
- एक ही WebSocket एंडपॉइंट हर विकल्प को एक क्वेरी पैरामीटर के रूप में ले जाता है -
token,sessionTTL,proxyCountry,fingerprint,profileId- इसलिए भू-लक्षित करना और प्रोफ़ाइल पुन: उपयोग करना URL परिवर्तनों हैं, कोड फिर से लिखना नहीं। - शुरू करने के लिए मुफ्त। नए Scrapeless खातों में मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम शामिल है - app.scrapeless.com पर साइन अप करें।
परिचय: तीन पायथन स्क्रैपर्स, एक अदृश्य ब्राउज़र
एंटी-बॉट सिस्टम अब एकल संकेत पर ध्यान नहीं देते हैं। एक आधुनिक चुनौती ब्राउज़र रनटाइम, जो फ़िंगरप्रिंट वह प्रस्तुत करता है, और नेटवर्क पथ जिसे वह पहुंचता है - एक साथ, एक पास में स्कोर करती है। एक स्थानीय हेडलेस क्रोमियम तीनों में असफल है: यह the navigator.webdriver property के माध्यम से स्वचालन की घोषणा करता है, यह हेडलेस-डिफॉल्ट फ़ॉन्ट और कैनवस व्यवहार के साथ आता है, और यह एक डाटासेंटर या होम IP से बाहर जाता है जिसे प्रतिष्ठा सेवाएं पहले ही जानती हैं।
पायथन के पास ब्राउज़र चलाने के लिए तीन लोकप्रिय तरीके हैं - ब्राउज़र उपयोग शैली LLM एजेंट, Crawl4AI का क्रॉलर, और Scrapling के फ़ेचर्स - और प्रत्येक एक समान तीन-धुरी समस्या विरासत में मिलता है। एक स्थानीय ब्राउज़र में स्टेल्थ को पैच करना मतलब है हाथ से क्रोम रिलीज़ और एंटी-बॉट अपडेट का पीछा करना, हमेशा के लिए।
इसके लिए एक छोटा रास्ता है। तीनों उपकरणों का एक ब्राउज़र से Chrome DevTools प्रोटोकॉल पर कनेक्शन होता है, और CDP को इस बात की परवाह नहीं है कि वह ब्राउज़र localhost पर है या क्लाउड में। यह गाइड तीनों को Scrapeless स्क्रैपिंग ब्राउज़र से जोड़ता है, ताकि रनटाइम, फ़िंगरप्रिंट और निकासी IP सर्वर-साइड पर प्रबंधित किया जाए और आपका स्क्रैपर कोड जैसा है, वैसा ही बना रहे।
क्या लीक करता है आपका फ़िंगरप्रिंट
एक ब्राउज़र फ़िंगरप्रिंट संकेतों के सेट हैं जिन्हें एक पृष्ठ बिना लॉगिन के पढ़ सकता है: उपयोगकर्ता एजेंट, वेबड्राइवर ध्वज, कैनवस और वेबजीएल रेंडरिंग, स्थापित फ़ॉन्ट, समय क्षेत्र, भाषा, और स्क्रीन मैट्रिक्स। स्वचालन ढांचे इनको पूर्वानुमान योग्य तरीकों से प्रभावित करते हैं - W3C वेबड्राइवर विनिर्देशन उचित ड्राइवरों से navigator.webdriver सेट करने की आवश्यकता है, जो ठीक वही संकेत है जिसे डिटेक्शन स्क्रिप्ट पहले पढ़ती है।
इसे स्थानीय रूप से ठीक करना हर संकेत को सुसंगत और मानव जैसा दिखने के लिए ओवरराइड करना और फिर उन ओवरराइड को अद्यतन रखना है क्योंकि क्रोमियम और डिटेक्टर बदलते हैं। यही रखरखाव की ट्रेडमिल है जिसे क्लाउड ब्राउज़र हटा देता है: Scrapeless प्रति सत्र एक सुसंगत फ़िंगरप्रिंट प्रस्तुत करता है, इसलिए संकेत एक-दूसरे और वास्तविक क्रोम प्रोफ़ाइल के साथ सहमत होते हैं।
क्यों Scrapeless स्क्रैपिंग ब्राउज़र
Scrapeless स्क्रैपिंग ब्राउज़र एक संवर्द्धन योग्य, एंटी-डिटेक्शन क्लाउड ब्राउज़र है जिसे वेब क्रॉलर्स और एआई एजेंटों के लिए डिज़ाइन किया गया है। क्योंकि यह Chrome DevTools प्रोटोकॉल से बात करता है, कोई भी CDP-क्षमता वाला पायथन उपकरण बिना बदले इसके साथ कनेक्ट होता है। इस गाइड में तीन उपकरणों के लिए यह लाता है:
- असली आत्म-विकसित क्रोमियम जो जावास्क्रिप्ट को ठीक उसी तरह निष्पादित करता है जैसे क्रोम, इसलिए सिंगल-पेज ऐप और चुनौती इंटरस्टिशल हल होते हैं।
- एक स्थिर प्रति-सेशन फ़िंगरप्रिंट — कोई
navigator.webdrivertell नहीं, कोई हेडलेस डिफॉल्ट लीक नहीं। - 195+ देशों में आवासीय निकासी, प्रति सत्र एकल
proxyCountryमान के साथ चयनित। - सत्र स्थिरता पुन: प्रयोज्य प्रोफाइल के माध्यम से, इसलिए कुकीज़ और लॉगिन स्थिति रन के बीच जीवित रहती है।
- एक कनेक्शन सतह — हर क्षमताओं का एक ही WebSocket एंडपॉइंट पर एक क्वेरी पैरामीटर है।
अपने API कुंजी को मुफ्त योजना पर प्राप्त करें app.scrapeless.com पर।
पूर्वापेक्षाएँ
- पायथन 3.11 या नया (ब्राउज़र उपयोग को 3.11+ की आवश्यकता है; Crawl4AI और Scrapling 3.10+ पर चलते हैं)
- एक Scrapeless खाता और API कुंजी — app.scrapeless.com पर साइन अप करें।
- आप जिस उपकरण को कनेक्ट करना चाहते हैं:
browser-use,crawl4ai, याscrapling - टर्मिनल और
asyncPython के साथ बुनियादी परिचितता
नीचे दिया गया कोड प्रत्येक लाइब्रेरी के वर्तमान API (Browser(cdp_url=...), BrowserConfig(browser_mode="cdp", cdp_url=...), DynamicSession(cdp_url=...)) के खिलाफ सत्यापित किया गया है। इसे अंत से अंत तक चलाने के लिए एक लाइव Scrapeless सत्र की आवश्यकता होती है, और Browser Use उदाहरण को इसके भाषा मॉडल के लिए एक OpenAI API कुंजी की भी आवश्यकता होती है - प्रत्येक उदाहरण को निष्पादित करने के लिए अपनी स्वयं की कुंजी प्रदान करें।
पूर्ण कनेक्शन विवरण Scraping Browser दस्तावेज़ीकरण में मौजूद हैं।
साझा पैटर्न: एक CDP URL
नीचे प्रत्येक एकीकरण इसी विचार पर आधारित है। Scrapeless एक CDP ब्राउज़र है जिसे wss://browser.scrapeless.com/api/v2/browser पर पहुँचाया जा सकता है, और इसके विकल्प क्वेरी पैरामीटर के रूप में होते हैं। उस URL को एक बार बनाएं, इसे उपकरण के कनेक्शन तर्क को सौंपें, और अपने स्क्रेपर को लिखित रूप में चलाएँ।
python
from urllib.parse import urlencode
params = {
"token": "your_api_token_here", # app.scrapeless.com से
"sessionTTL": 900, # जब तक सत्र चालू रहता है
"proxyCountry": "ANY", # या एक ISO कोड जैसे "US", "DE", "JP"
}
cdp_url = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
पैरामीटर सभी तीन उपकरणों में समान हैं:
| पैरामीटर | अर्थ |
|---|---|
token |
आपका Scrapeless API कुंजी (आवश्यक) |
sessionTTL |
सत्र जीवनकाल |
sessionName |
सत्र के लिए एक लेबल |
proxyCountry |
ISO देश कोड या ANY |
fingerprint |
URL-कोडित JSON फिंगरप्रिंट ऑब्जेक्ट |
profileId |
परिचालन के दौरान एक स्थायी प्रोफ़ाइल का पुन: उपयोग करें |
Browser Use: एक साफ ब्राउज़र पर एक LLM एजेंट
Browser Use एक ब्राउज़र को एक भाषा मॉडल के साथ संचालित करता है। इसका Browser ऑब्जेक्ट एक cdp_url स्वीकार करता है, इसलिए पूरा परिवर्तन Scrapeless URL को बनाना और इसे पास करना है - एजेंट, इसका कार्य और इसका LLM वही रहते हैं।
नोट: इस उदाहरण को
agent.run()के लिए एक लाइव Scrapeless सत्र और एक OpenAI API कुंजी की आवश्यकता है। इसे निष्पादित करने के लिए दोनों प्रदान करें।
python
import asyncio, os
from urllib.parse import urlencode
from dotenv import load_dotenv
from browser_use import Agent, Browser, ChatOpenAI
def scrapeless_browser() -> Browser:
params = {
"token": os.environ["SCRAPELESS_API_KEY"],
"sessionTTL": 900,
"proxyCountry": "ANY",
}
ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
return Browser(cdp_url=ws)
async def main():
load_dotenv()
browser = scrapeless_browser()
await browser.start()
agent = Agent(
task="Google पर जाएं, 'Scrapeless' के लिए खोजें, पहले परिणाम को खोलें और इसका शीर्षक लौटाएं",
llm=ChatOpenAI(model="gpt-4o"),
browser=browser,
)
print(await agent.run())
await browser.kill()
asyncio.run(main())
एजेंट अब एक क्लाउड ब्राउज़र के खिलाफ तर्क करता है और क्लिक करता है जिसमें एक साफ फिंगरप्रिंट और आवासीय निकासी है। आप Scrapeless डैशबोर्ड से लाइव सत्र देख सकते हैं।
अपनी API कुंजी मुफ्त योजना पर प्राप्त करें: app.scrapeless.com
Crawl4AI: ब्राउज़र मोड को CDP पर सेट करें
Crawl4AI में स्वदेशी CDP समर्थन है, इसलिए अतिरिक्त स्थापना की आवश्यकता नहीं है। BrowserConfig पर browser_mode="cdp" सेट करें और Scrapeless URL को cdp_url के रूप में पास करें। ध्यान दें कि Crawl4AI का एकीकरण sessionTTL को मिलीसेकंड में व्यक्त करता है।
नोट: इस उदाहरण को एक वास्तविक लक्ष्य के खिलाफ निष्पादित करने के लिए एक लाइव Scrapeless सत्र की आवश्यकता है। इसे चलाने के लिए अपनी API कुंजी जोड़ें।
python
import asyncio
from urllib.parse import urlencode
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
async def main():
params = {
"token": "your_api_token_here",
"sessionName": "Proxy Demo",
"sessionTTL": 1000, # मिलीसेकंड
"proxyCountry": "ANY",
}
cdp_url = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(params)}"
async with AsyncWebCrawler(
config=BrowserConfig(headless=False, browser_mode="cdp", cdp_url=cdp_url)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com/en",
config=CrawlerRunConfig(wait_for="css:.content", scan_full_page=True),
)
print(f"स्थिति कोड: {result.status_code}")
print(f"शीर्षक: {result.metadata['title']}")
asyncio.run(main())
एक कस्टम फिंगरप्रिंट भेजने के लिए, एक फिंगरप्रिंट ऑब्जेक्ट को JSON में एन्कोड करें, इसे URL-कोड करें, और इसे fingerprint पैरामीटर के रूप में पास करें - ब्राउज़र फिर उस उपयोगकर्ता एजेंट, प्लेटफ़ॉर्म, स्क्रीन, और स्थानीयकरण को पूरे सत्र के लिए स्थिरता से प्रस्तुत करता है।
Scrapling: क्लाउड ब्राउज़र पर एक DynamicSession
स्क्रैप्लिंग आपको एक ब्राउज़र सत्र पर तेज, अनुकूली पार्सिंग देता है। इसका DynamicSession एक cdp_url लेता है, और स्क्रैप्लिंग का एकीकरण sessionTTL को सेकंड के एक स्ट्रिंग के रूप में पास करता है। सत्र स्वचालित रूप से reCAPTCHA, Cloudflare Turnstile, और AWS WAF चुनौतियों को संभालता है, जो कि रेंडरिंग के हिस्से के रूप में होता है।
नोट: इस उदाहरण को चलाने के लिए एक लाइव स्क्रैपलेस सत्र की आवश्यकता है। इसे चलाने के लिए अपना API कुंजी जोड़ें।
python
import os
from urllib.parse import urlencode
from dotenv import load_dotenv
from scrapling.fetchers import DynamicSession
load_dotenv()
config = {
"token": os.environ["SCRAPELESS_API_KEY"],
"sessionName": "scrapling-session",
"sessionTTL": "300", # सेकंड, एक स्ट्रिंग के रूप में
"proxyCountry": "ANY",
"sessionRecording": "false",
}
ws = f"wss://browser.scrapeless.com/api/v2/browser?{urlencode(config)}"
with DynamicSession(cdp_url=ws, disable_resources=True) as s:
page = s.fetch("https://httpbin.org/headers", network_idle=True)
print(f"सामग्री की लंबाई: {len(page.body)}")
print(page.json())
स्क्रैपलेस पृष्ठ को एक साफ ब्राउज़र पर रेंडर करता है; स्क्रैप्लिंग वापस किए गए DOM को इसके चयनकर्ताओं के साथ पार्स करता है। काम की यह विभाजन महत्वपूर्ण है — आप स्क्रैप्लिंग के निष्कर्षण API को बनाए रखते हैं और केवल नीचे के ब्राउज़र को बदलते हैं।
आप क्या वापस प्राप्त करते हैं
तीनों उपकरणों के बीच व्यवहार उन तरीकों से समान है जो मायने रखते हैं:
navigator.webdriverसिग्नल अनुपस्थित है — क्लाउड ब्राउज़र स्वचालन की घोषणा नहीं करता है, इसलिए पहली पहचान जांच असली क्रोम की तरह दिखाई देती है।- निकासी IP
proxyCountryसे मेल खाती है — भू-गेटेड पृष्ठ और मूल्य स्थानीय आगंतुक के रूप में उन्हें देखते हैं;ANYस्क्रैपलेस को चुनने की अनुमति देता है। - जावास्क्रिप्ट पूरी तरह से निष्पादित होता है — ग्राहक-निर्मित सूचियां और चुनौती इंटरस्टिशियल्स पृष्ठ के DOM को पढ़ने से पहले संलग्न होते हैं।
sessionTTLकी इकाइयां उपकरण द्वारा भिन्न होती हैं — ब्राउज़र उपयोग और स्क्रैप्लिंग के लिए सेकंड, Crawl4AI के लिए मिलीसेकंड। उपकरण के अपने मानक से मेल करें, साझा स्थिरांक नहीं।- क्षेत्र अनुपस्थित हो सकते हैं — किसी भी पार्स किए गए मूल्य को नल के रूप में मानें, क्योंकि पृष्ठ संरचना और शर्तीय अनुभाग लक्ष्यों के अनुसार भिन्न होते हैं।
निष्कर्ष: उपकरण चुनें, ब्राउज़र बनाए रखें
तीन उपकरण अलग-अलग कार्यों को कवर करते हैं — एक LLM एजेंट, एक क्रॉलर, और एक अनुकूली पार्सर — लेकिन वे एक एंटी-डिटेक्शन ब्राउज़र साझा करते हैं। जिस किसी भी उपकरण को आप चुनते हैं, एकल कनेक्शन URL एकीकृत होता है: अपने token और विकल्पों के साथ wss://browser.scrapeless.com/api/v2/browser बनाएं, इसे उपकरण के cdp_url को सौंपें, और स्क्रैपलेस को रनटाइम, फ़िंगरप्रिंट, और आवासीय निकासी का कार्यभार सौंपें।
स्क्रैपर के लिए निकासी पथ चुनने के लिए अधिक जानकारी के लिए, VPS और प्रॉक्सी के बीच अंतर देखें, और स्क्रैपलेस मूल्य निर्धारण पृष्ठ पर योजनाओं की तुलना करें। proxyCountry को एक आवासीय क्षेत्र पर स्थिर करें, प्रत्येक उपकरण के sessionTTL इकाई से मेल करें, और अनुपस्थित क्षेत्रों को नल के रूप में मानें।
क्या आप अपने अदृश्य स्क्रैपिंग पाइपलाइन बनाने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों, एक मुफ्त योजना प्राप्त करें, और उन डेवलपर्स से जुड़ें जो Python स्क्रैपर्स को क्लाउड ब्राउज़र्स से जोड़ते हैं: Discord · Telegram.
app.scrapeless.com पर अपने निःशुल्क स्क्रैपिंग ब्राउज़र रनटाइम के लिए साइन अप करें और ब्राउज़र उपयोग, Crawl4AI, या स्क्रैप्लिंग को उस क्लाउड ब्राउज़र की ओर इंगित करें जिसे आपके लक्ष्यों को फ़िंगरप्रिंट नहीं कर सकते।
अक्सर पूछे जाने वाले प्रश्न
प्रश्न: क्या मुझे स्क्रैपलेस का उपयोग करने के लिए अपने स्क्रैपर को फिर से लिखना होगा?
नहीं। तीनों उपकरण पहले से ही ब्राउज़र से CDP के माध्यम से कनेक्ट होते हैं। आप कनेक्शन लक्ष्य बदलते हैं — cdp_url या वेब सॉकेट अंत बिंदु — और अपने एजेंट, क्रॉलर, या पार्सर को जैसा लिखा है, वैसा ही रखते हैं।
प्रश्न: क्या बस एक स्थानीय हेडलेस ब्राउज़र नहीं चलाना चाहिए?
एक स्थानीय ब्राउज़र आपके स्वयं के IP पर चलता है, navigator.webdriver के माध्यम से स्वचालन की घोषणा करता है, और Chromium और एंटी-बॉट सिस्टम के बदलने पर आपको स्टेल्थ पैच बनाए रखने की आवश्यकता होती है। क्लाउड ब्राउज़र एक स्थिर फिंगरप्रिंट और आवासीय निकासी प्रस्तुत करता है जिसमें कोई रखरखाव नहीं होता है।
प्रश्न: क्या मुझे एक अलग प्रॉक्सी की आवश्यकता है?
नहीं। आवासीय निकासी सत्र में निर्मित होती है — proxyCountry को एक क्षेत्र या ANY पर सेट करें। कॉन्फ़िगर करने के लिए कोई अलग प्रॉक्सी नहीं है।
प्रश्न: क्या sessionTTL सेकंड में है या मिलीसेकंड में?
यह उपकरण के एकीकरण पर निर्भर करता है: ब्राउज़र उपयोग और स्क्रैप्लिंग के लिए सेकंड (स्क्रैप्लिंग इसे एक स्ट्रिंग के रूप में पास करता है), Crawl4AI के लिए मिलीसेकंड। प्रत्येक उपकरण की अपनी परंपरा का उपयोग करें।
प्रश्न: क्या यह Cloudflare और CAPTCHAs को संभालता है?
क्लाउड ब्राउज़र सामान्य चुनौती प्रकारों को संभालता है — क्लाउडफ्लेयर इंटरस्टिशियल, क्लाउडफ्लेयर टर्नस्टाइल, reCAPTCHA, और AWS WAF — एक साफ आवासीय IP पर रेंडरिंग के हिस्से के रूप में। सर्वश्रेष्ठ परिणाम के लिए proxyCountry को एक आवासीय क्षेत्र पर स्थिर करें।
प्रश्न: मुझे इनमें से कौन सा तीन उपकरण का उपयोग करना चाहिए?
ब्राउज़र का उपयोग उन LLM-संचालित एजेंटों के लिए होता है जो अपने स्वयं के कदम तय करते हैं, Crawl4AI के लिए संरचित क्रॉलिंग और सामग्री निष्कर्षण के लिए, और Scrapling के लिए प्राप्त की गई पृष्ठ के तेज़ अनुकूलन पार्सिंग के लिए। वे एक ही Scrapeless ब्राउज़र साझा करते हैं, इसलिए आप अपने कनेक्शन दृष्टिकोण को बदले बिना स्विच कर सकते हैं।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



