वापस ब्लॉग पर

ब्राइट डेटा समीक्षा और विकल्प: अपने स्क्रैपर्स का माइग्रेशन

James Thompson
James Thompson

Scraping and Proxy Management Expert

11-Aug-2026

TL;DR:

  • Bright Data एक ही एंडपॉइंट के माध्यम से दो विभिन्न उत्पादों को रूट करता है। Web Unlocker और SERP API दोनों https://api.brightdata.com/request पर POST करते हैं; केवल zone अनुरोध शरीर में यह तय करता है कि कौन सा उत्तर देता है। इसलिए पोर्टिंग आपकी ज़ोन को डेमल्टिप्लेक्सिंग से शुरू होती है, न कि होस्टनाम के अदले-बदले से।
  • एक naïve पोर्ट में तीन चीजें टूटती हैं, और इनमें से कोई भी सहायक त्रुटि नहीं उठाता: ऑथ हेडर का नाम बदल जाता है, प्रतिक्रिया कच्चे मार्कअप के बजाय JSON लिफाफे के रूप में आती है, और दोनों सतहें विभिन्न API संस्करणों पर होती हैं।
  • ब्राउज़र ऑटोमेशन आसान चरण है। दोनों उत्पाद CDP के बारे में बात करते हैं, इसलिए Playwright और Puppeteer कोड एक बदले हुए कनेक्शन URL पर जीवित रहता है। क्रेडेंशियल्स URL के उपयोगकर्ता जानकारी से एक क्वेरी पैरामीटर में स्थानांतरित होते हैं।
  • वैसे भी एक समयसीमा है जो प्रश्न को मजबूर करती है। Bright Data का अपना FAQ बताता है कि प्रॉक्सी पोर्ट 22225 और 33335 पर प्रमाणपत्र 25 सितंबर 2026 को समाप्त हो जाते हैं, और कॉलर्स को पोर्ट 44445 पर जाना होगा। हर एकीकरण तब तक खोला जा रहा है।
  • मुफ्त में शुरू करें: Scrapeless डैशबोर्ड एक कुंजी जारी करता है जो यहां वर्णित प्रत्येक सतह के खिलाफ कार्य करता है।

What Bright Data Is

Bright Data वेब-डेटा संग्रह को ऐसे अलग-अलग ब्रांड वाले उत्पादों के सेट के रूप में बेचता है जो एक प्रॉक्सी नेटवर्क पर बैठते हैं। जब आप स्क्रैपर कोड ले जा रहे होते हैं तो उनमें से तीन महत्वपूर्ण होते हैं:

  • Web Unlocker API — आप इसे एक URL सौंपते हैं, यह प्रॉक्सी रोटेशन, फिंगरप्रिंट और चुनौतियां संभालता है, और पृष्ठ लौटाता है।
  • SERP API — वही अनुरोध पाइपलाइन जो सर्च इंजनों के लिए बनाई गई है, जहां आप एक पूर्ण-निर्मित खोज URL पास करते हैं।
  • Browser API — एक होस्टेड क्रोम जिसे आप Playwright, Puppeteer या Selenium के माध्यम से Chrome DevTools प्रोटोकॉल पर चलाते हैं।

महत्वपूर्ण संरचनात्मक तथ्य, और वह जो हर माइग्रेशन को आकार देता है: पहले दो एक समान HTTP एंडपॉइंट हैं। Bright Data के Web Unlocker दस्तावेज़ और इसके SERP API दस्तावेज़ के अनुसार, दोनों उत्पाद https://api.brightdata.com/request पर एक POST को स्वीकार करते हैं जिसमें zone, url और format होती हैं। zone मान वही है जो कॉल को रूट करता है।

यह Bright Data पर रहने के दौरान सुविधाजनक है और जब आप बाहर जाते हैं तो मुश्किल होती है, क्योंकि आपके कोडबेस में शायद एक अनुरोध सहायक है जिसका व्यवहार एक कॉन्फ़िगरेशन स्ट्रिंग पर निर्भर करता है।

Key Features

इन तीन उत्पादों के बीच अनुरोध सतह छोटी और सुसंगत है:

  • प्रमाणीकरण एकल खाते की API कुंजी के रूप में है जो Authorization: Bearer <key> के रूप में भेजी जाती है।
  • रूटिंग zone द्वारा होती है, जो डैशबोर्ड में कॉन्फ़िगर होती है न कि अनुरोध में।
  • format: "raw" लक्षित के प्रतिक्रिया शरीर को सीधे लौटाता है।
  • भू-लक्षित, सत्र पिनिंग और मोबाइल उपयोगकर्ता एजेंट प्रॉक्सी उपयोगकर्ता नाम के अंदर व्यक्त किए जाते हैं, जैसे कि उपसर्गों का उपयोग करते हुए -country-<code> और -session-<id>
  • Browser API wss://<username>:<password>@brd.superproxy.io:9222 पर जोड़ता है, जैसा कि Bright Data का Browser API कॉन्फ़िगरेशन संदर्भ में है।

Products and Pricing

Bright Data उत्पाद और ज़ोन के अनुसार मूल्य निर्धारण करता है, इसलिए एकल खाता आमतौर पर अलग-अलग दरों और अलग-अलग सीमाओं के साथ कई ज़ोन ले जाता है। यह मॉडल वही है जो एक माइग्रेशन को शायद एक-लाइन परिवर्तन नहीं बनाता है: ज़ोन बिलिंग और कॉन्फ़िगरेशन सीमा के रूप में कार्य करता है, इसलिए इससे बाहर जाने से लागत मानदंड के साथ-साथ रूटिंग भी प्रभावित होती है।

Scrapeless एक कुंजी के खिलाफ एक अनुरोध के अनुसार मूल्य निर्धारण करता है, जिसमें सतह को आप जो एंडपॉइंट कॉल करते हैं उसके द्वारा चुना जाता है न कि डैशबोर्ड ऑब्जेक्ट द्वारा। दोनों पक्षों के लिए वर्तमान आंकड़े उनके संबंधित मूल्य निर्धारण पृष्ठों पर हैं; यह गाइड जानबूझकर तंत्र को मानचित्रित करता है बजाय दरों को उद्धृत करने के जो बदलते रहते हैं।

Performance and Fit

Bright Data का प्रॉक्सी नेटवर्क बड़ा है और इसके अनलॉकिंग सफलता दर कठिन लक्ष्यों पर वही है जो अधिकांश टीमें इसे पहले स्थान पर अपनाने के लिए प्रेरित करता है। इस गाइड में कुछ भी यह तर्क नहीं करता कि उत्पाद काम नहीं करता है।

टीमों को जो चीज़ें इधर-उधर करती हैं वह आम तौर पर संरचनात्मक होती हैं बजाय तकनीकी: प्रति-ज़ोन कॉन्फ़िगरेशन जो भटकता है, बिलिंग जो एक विशेष काम की ओर वापस रखना कठिन होता है, और कई ज़ोन को समन्वित रखने का संचालन ओवरहेड। यही वो शर्तें हैं जिनके तहत "कोड को पोर्ट करना" एक वास्तविक प्रश्न बन जाता है।

The Scrapeless Alternative

Scrapeless एक ही कार्य को सतहों के बीच विभाजित करता है जो कॉन्फ़िगरेशन के बजाय URL द्वारा चुनी जाती हैं:

  • Universal Scraping APIPOST https://api.scrapeless.com/api/v2/unlocker/request अवरुद्ध पृष्ठ प्राप्त करने के लिए।
  • Scraper APIPOST https://api.scrapeless.com/api/v1/scraper/request एक actor के साथ जो लक्षित सतह को नामित करता है, पार्स किए गए फ़ील्ड के साथ इनलाइन उत्तर देता है।
  • Scraping Browserwss://browser.scrapeless.com/api/v2/browser पर एक CDP एंडपॉइंट, जिसमें कुंजी को token क्वेरी पैरामीटर के रूप में पास किया जाता है।
    एक कुंजी सभी तीनों को कवर करती है। कोई ज़ोन ऑब्जेक्ट नहीं है, जो डैशबोर्ड राउंड-ट्रिप को हटा देता है लेकिन इसका मतलब यह भी है कि डेमल्टिप्लेक्सिंग आपके कोड में पोर्ट के दौरान होनी चाहिए।

जहां ब्राइट डेटा अभी भी बढ़त रखता है

तीन चीज़ें वास्तव में ब्राइट डेटा पर पोर्ट के बाद करने में आसान हैं:

  • ज़ोन मॉडल वास्तव में सुविधाजनक है जब कई नौकरियां एक कॉल साइट साझा करती हैं और आप बिना डिप्लॉय के व्यवहार बदलना चाहते हैं।
  • सेलेनियम का ब्राउज़र एपीआई के खिलाफ समर्थन किया गया है। स्क्रेपलेस स्क्रैपिंग ब्राउज़र केवल सीडीपी है, इसलिए सेलेनियम-आधारित सूट को प्लेव्राइट या पपेटियर पर फिर से लिखने की आवश्यकता होती है न कि केवल फिर से इंगित करने की।
  • प्रॉक्सी-यूजरनेम संशोधक जैसे -country- और -session- को अनुरोध के शरीर को छुए बिना भूगोल और सत्र पिनिंग का प्रदर्शन करते हैं, जिस पर कुछ कोडबेस भारी निर्भर करते हैं।

जहां मॉडल आपको लागत देता है

  • एक एंडपॉइंट, दो उत्पाद का मतलब है कि स्थिर विश्लेषण आपको यह नहीं बता सकता कि एक दी गई कॉल वास्तव में क्या करती है बिना ज़ोन को हल किए।
  • कॉन्फ़िगरेशन रेपोजिटरी के बाहर रहती है, इसलिए एक ज़ोन परिवर्तन कोड समीक्षा और git blame के लिए अदृश्य है।
  • पोर्ट और प्रमाणपत्रों का परिवर्तन आपके ऊपर आता है। ब्राइट डेटा का सामान्य FAQ बताता है कि पुराने प्रमाणपत्र जो पोर्ट 22225 और 33335 पर हैं, 25 सितंबर 2026 को 00:00 UTC पर समाप्त हो जाएंगे, और उन पोर्ट पर अभी भी कॉल करने वाले को 44445 पोर्ट पर स्थानांतरित करना होगा उससे पहले की तारीख।

कार्यान्वयन: कोड का पोर्टिंग

यह वह भाग है जिसे अन्य माइग्रेशन लेख छोड़ देते हैं। नीचे प्रत्येक उपखंड एक वास्तविक भिन्नता है जो स्पष्ट त्रुटि के बजाय गलत परिणाम उत्पन्न करती है।

एंडपॉइंट और पैरामीटर मानचित्र

चिंता ब्राइट डेटा स्क्रेपलेस
अनब्लॉक किए गए पृष्ठ फ़ेच POST https://api.brightdata.com/request · {"zone","url","format":"raw"} POST https://api.scrapeless.com/api/v2/unlocker/request · {"actor":"unlocker.webunlocker","input":{"url","js_render"}}
खोज परिणाम समान एंडपॉइंट, एसईआरपी ज़ोन · url एक पूर्व-निर्मित खोज URL है POST https://api.scrapeless.com/api/v1/scraper/request · {"actor":"scraper.google.search","input":{"q","gl","hl"}} · परिणामों को इनलाइन पार्स करता है
ब्राउज़र स्वचालन wss://<user>:<pass>@brd.superproxy.io:9222 wss://browser.scrapeless.com/api/v2/browser?token=<key>
प्रमाणीकरण Authorization: Bearer <key> x-api-token: <key>
उत्पाद रूटिंग शरीर में zone एंडपॉइंट प्लस actor
सफलता का शरीर लक्ष्य का प्रतिक्रिया शरीर JSON लिफाफा; मार्कअप data के अंदर

टूटना 1: प्रमाणीकरण हेडर का नाम बदलता है

सबसे सामान्य असफल पहली कोशिश मेज़बान और कुंजी को अदला-बदली करती है लेकिन हेडर को बनाए रखती है। ब्राइट डेटा Authorization: Bearer का उपयोग करता है; स्क्रेपलेस x-api-token का उपयोग करता है। केवल पुराने हेडर के साथ भेजा गया अनुरोध प्राधिकृत नहीं है, और असफलता एक क्रेडेंशियल समस्या की तरह दिखती है बजाय हेडर-नाम की समस्या के।

bash Copy
# Bright Data — illustrative, from the vendor's published example
curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${BRIGHTDATA_API_KEY}" \
  -d '{"zone":"YOUR_ZONE_NAME","url":"https://example.com","format":"raw"}' \
  https://api.brightdata.com/request
bash Copy
# Scrapeless — the same intent
curl -sS -X POST "https://api.scrapeless.com/api/v2/unlocker/request" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"actor":"unlocker.webunlocker","input":{"url":"https://example.com","js_render":false}}'

टूटना 2: प्रतिक्रिया एक लिफाफा है

format: "raw" के साथ ब्राइट डेटा लक्ष्य के शरीर को वापस करता है, इसलिए कॉलर आमतौर पर response.text करते हैं और इसे पार्स करते हैं। स्क्रेपलेस एक JSON ऑब्जेक्ट के साथ उत्तर देता है और मार्कअप को data में रखता है।

एक पोर्ट जो केवल URL और हेडर को बदलता है, एक JSON स्ट्रिंग को HTML की तरह पार्स करेगा। सेलेक्टर्स कुछ भी वापस नहीं करते, कोई अपवाद उत्पन्न नहीं होता, और नौकरी खाली परिणाम रिकॉर्ड करती है। सुधार एक पंक्ति है, लेकिन केवल अगर आप इसे बनाने के लिए जानते हैं।

python Copy
import os
import requests

KEY = os.environ["SCRAPELESS_API_KEY"]

def fetch(url: str, js_render: bool = False) -> str:
    """Return page HTML. The envelope is unwrapped here, once."""
    response = requests.post(
        "https://api.scrapeless.com/api/v2/unlocker/request",
        headers={"x-api-token": KEY, "Content-Type": "application/json"},
        json={"actor": "unlocker.webunlocker", "input": {"url": url, "js_render": js_render}},
        timeout=90,
    )
    response.raise_for_status()
    body = response.json()
    # Bright Data with format:"raw" would have given you this directly as response.text
    return body["data"]

html = fetch("https://example.com")
print(f"chars={len(html)} starts_with_doctype={html.lstrip().lower().startswith('<!doctype')}")

एक सहायक में अनरैप रखें। कॉल साइट्स के बीच response.json()["data"] का बिखराव इस तरह से आधा कोडबेस पोर्ट किया जाता है और दूसरा आधा चुपचाप JSON लौटाता है।

टूटना 3: दो सतहें विभिन्न एपीआई संस्करणों पर स्थित हैं

यह उन लोगों को पकड़ता है जो मान लेते हैं कि एक प्रदाता का एक ही एपीआई है। अनलॉकर सतह /api/v2/ पर है; Google सर्च अभिनेता /api/v1/ पर है। सर्च अभिनेता को v2 पथ पर भेजने पर HTTP 400 {"message":"unknown task type"} वापस करता है — एक संदेश जो एक गलत प्रारूप वाला शरीर की तरह पढ़ता है और आपको अपने input फ़ील्ड की जांच करने के लिए भेजता है, जबकि संस्करण खंड असली समस्या है।

खोज कॉल स्वयं समन्वयित है। यह एक राउंड ट्रिप में पार्स किए गए परिणामों के साथ उत्तर देता है, इसलिए कोई कार्य पहचानकर्ता और कोई पोल लूप नहीं है।

python Copy
import os
import requests

KEY = os.environ["SCRAPELESS_API_KEY"]

def search(query: str, gl: str = "us", hl: str = "en") -> dict:
    """Google SERP as structured JSON. Note the v1 path — the unlocker is v2."""
    response = requests.post(
        "https://api.scrapeless.com/api/v1/scraper/request",
        headers={"x-api-token": KEY, "Content-Type": "application/json"},
        json={"actor": "scraper.google.search", "input": {"q": query, "gl": gl, "hl": hl}},
        timeout=120,
    )
    response.raise_for_status()
    return response.json()

data = search("web scraping api")
print("sections:", sorted(data))
for row in data.get("organic_results", [])[:3]:
    print(f"  {row['position']}. {row['title'][:60]}")
    print(f"     {row['link']}")

यहां बड़ा बदलाव यह है कि क्या वापस आता है। ब्राइट डेटा का एसईआरपी एपीआई format: "raw" के साथ आपको सर्च इंजन का HTML देता है और आप इसे स्वयं पार्स करते हैं। स्क्रेपलेस पहले से ही पार्स किया हुआ पृष्ठ लौटाता है — web scraping api के लिए एक लाइव कॉल में organic_results, pagination, related_searches, search_information और metadata के साथ वापस आया, जहां प्रत्येक जैविक row में position, title, link, snippet, source, favicon, redirect_link और snippet_highlighted_words है।

पोर्ट के लिए दो परिणाम। आपका एसईआरपी HTML पार्सर मृत कोड बन जाता है — इसे पोर्ट करने के बजाय हटा दें। और कोई भी क्वेरी-स्टिंग असेंबली जो आपके पास है, वह भी मृत हो जाती है, क्योंकि क्वेरी और लोकेल input में जाती है जैसे कि q, gl और hl URL में पकाए जाने के बजाय।

टूटना 4: ब्राउज़र क्रेडेंशियल्स का स्थान बदलता है

दोनों उत्पाद CDP को उजागर करते हैं, इसलिए स्वचालन कोड स्वयं स्थानांतरित हो जाता है। जो बदलता है वह है क्रेडेंशियल कहाँ स्थित है - ब्राइट डेटा इसे URL के उपयोगकर्ता जानकारी में रखता है, जबकि स्क्रेपलेस इसे एक प्रश्न पैरामीटर में रखता है।

python Copy
import os
from playwright.sync_api import sync_playwright

# Bright Data (illustrative):
#   wss://<username>:<password>@brd.superproxy.io:9222
endpoint = f"wss://browser.scrapeless.com/api/v2/browser?token={os.environ['SCRAPELESS_API_KEY']}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(endpoint)
    page = browser.new_page()
    page.goto("https://quotes.toscrape.com/", wait_until="domcontentloaded")
    print("title:", page.title())
    print("quotes on page:", len(page.query_selector_all(".quote")))
    browser.close()

यह स्थिति परिवर्तन एक संचालनात्मक परिणाम लाता है जिस पर योजना बनाना महत्वपूर्ण है। कई लॉगिंग और ट्रेसिंग पुस्तकालय स्वचालित रूप से URL उपयोगकर्ता जानकारी को हटा देते हैं लेकिन प्रश्न स्ट्रिंग्स को बरकरार रखते हैं, इसलिए एक कनेक्शन स्ट्रिंग जो पहले डिफ़ॉल्ट रूप से हटा दी गई थी, लॉग में प्रकट होना शुरू कर सकती है। इसे शिप करने से पहले token पैरामीटर पर फ़िल्टर करें।

आप आरंभ करने से पहले आकार के लिए दो पाबंदियाँ: स्क्रेपलेस स्क्रैपिंग ब्राउज़र केवल CDP का उपयोग करता है, इसलिए एक Selenium सेट को फिर से लिखना होगा ना कि केवल इंगित करना होगा, और connect_over_cdp एक दूरस्थ ब्राउज़र से जोड़ता है ना कि एक को लॉन्च करता है, इसलिए आपके मौजूदा कोड में कोई launch() तर्क नहीं है।

एक माइग्रेशन आदेश जो काम करता है

  1. अपने ज़ोन की सूची बनाएं और प्रत्येक को अनलॉकर-आकार या SERP-आकार के रूप में लेबल करें। यह डे-मल्टीप्लेक्सिंग कदम है और यह केवल वास्तव में मैन्युअल हिस्सा है।
  2. पहले अनलॉकर पथ को पोर्ट करें - यह एक हेडर परिवर्तन है प्लस एंवेलप अनपैक, एक सहायक में।
  3. दूसरे संख्या पथ को पोर्ट करें, v1 पथ पर स्विच करते हुए और अपने URL assembly और HTML parser दोनों को हटा दें।
  4. ब्राउज़र ऑटोमेशन को अंतिम रूप से इंगित करें; यह सबसे छोटा भिन्न है।
  5. दोनों स्टैक्स को एक ही URL सूची के खिलाफ चलाएँ और निकाले गए फ़ील्ड का भिन्नता ज्ञात करें, कच्चे बाइट नहीं। फ़ेचिंग के बीच मार्कअप हानिरहित ढंग से भिन्न होता है; निकाली गई मान नहीं होनी चाहिए।

उपयोग के मामले जो साफ-सुथरे माइग्रेट होते हैं

  • मूल्य और सूची की निगरानी — अनलॉकर-आकार, एक सहायक, सबसे अधिक मात्रा और सबसे आसान कड़ी।
  • रैंक ट्रैकिंग और SERP मॉनिटरिंग — संरचित फ़ील्ड प्राप्त करें, URL assembly खो दें।
  • एजेंट और RAG प्राप्ति पाइपलाइन — पार्स की गई SERP आउटपुट सीधे प्राप्ति चरण में गिरती है, एक पार्सिंग चरण को हटा देते हुए न कि जोड़ते हुए।

वह मामला जो साफ-सुथरे माइग्रेट नहीं होता है वह Selenium-आधारित ब्राउज़र सूट है, ऊपर दी गई वजह के लिए। इसे अलग बजट करें न कि एक ही स्प्रिंट में मिलाएँ।

मूल्य निर्धारण तुलना

ईमानदार तुलना संरचनात्मक है न कि संख्यात्मक। ब्राइट डेटा लागत को एक क्षेत्र में जोड़ता है, इसलिए खर्च कोनफ़िगरेशन ऑब्जेक्ट द्वारा समूहित होता है और जो कार्य दो क्षेत्रों को जोड़ता है, वह दो जगहों पर दिखाई देता है। स्क्रेपलेस लागत को एक कुंजी के खिलाफ अनुरोधों में जोड़ता है, इसलिए आवंटन कोड के पथ का अनुसरण करता है जो कॉल बनाता है।

यदि आप आंशिक रूप से लागत दृष्टि के लिए माइग्रेट कर रहे हैं, तो यह अंतर प्रमुख दर से अधिक महत्वपूर्ण है। स्क्रेपलेस मूल्य निर्धारण पृष्ठ और ब्राइट डेटा के अपने मूल्य निर्धारण पृष्ठ पर वर्तमान संख्या चेक करें इससे पहले कि आप कुछ भी मॉडल करें।

संबंधित संसाधन

निष्कर्ष

ब्राइट डेटा माइग्रेशन भिन्न आकार में छोटा होता है और इसे धीरे-धीरे गलत करना आसान होता है। अंतिम बिंदु और कुंजी दृश्यात्मक आधा है; वह आधा जो एक डिबगिंग चक्र की लागत है, वह है कि एक ब्राइट डेटा अंत बिंदु दो स्क्रेपलेस सतहों के साथ मानचित्रित होता है, कि शरीर लिपटा होता है, और कि ये दो सतहें विभिन्न एपीआई संस्करणों पर होती हैं। पहले अनलॉकर पथ को पोर्ट करें, एंवेलप अनपैक को एकल सहायक में रखें, और जब आप कट करते हैं तो निकाले गए फ़ील्ड के बजाय कच्चे HTML में भिन्नता ज्ञात करें।

यदि आपका एकीकरण अभी भी पोर्ट 22225 या 33335 पर है, तो आपके पास कैलेंडर पर एक समय सीमा है, चाहे आप किसी भी प्रदाता पर पहुँचे। यह एक ऐसा क्षण है निर्णय लेने के लिए, जो सितंबर के अंत में समय के दबाव के तहत करने के बजाय जानबूझकर हो।

क्या आप अपने स्क्रैपर्स को स्थानांतरित करने के लिए तैयार हैं?

स्क्रेपलेस डैशबोर्ड पर एक कुंजी बनाएं और ऊपर दिए गए अनलॉकर स्निपेट को एक URL के खिलाफ चलाएं जिसे आप पहले से एकत्र करते हैं। निकाली गई फ़ील्ड की तुलना आपके वर्तमान आउटपुट के खिलाफ करना एक पंद्रह-मिनट का परीक्षण है जो माइग्रेशन प्रश्न का अधिकांश उत्तर देता है।

सामान्य प्रश्न

प्रश्न: ब्राइट डेटा माइग्रेशन को वास्तव में कितना समय लगता है?

एक अनलॉकर-केवल एकीकरण के लिए, कुछ घंटे: एक हेडर परिवर्तन, एक एंवेलप अनपैक एक सहायक में, और एक भिन्न चलाना। एक SERP पथ आमतौर पर अपेक्षा से तेज होता है, क्योंकि आप लिखने से अधिक कोड हटाते हैं - HTML parser और URL assembly दोनों जाते हैं। एक Selenium ब्राउज़र सूट अपवाद है और इसे अकेले स्कोप में रखना चाहिए।

प्रश्न: क्या मुझे अपने क्षेत्र दोबारा बनाने की आवश्यकता है?
नहीं — पुनर्निर्माण के लिए कोई ज़ोन ऑब्जेक्ट नहीं है। एक कुंजी हर सतह को कवर करती है। कार्य आपके कोड में चला जाता है: प्रत्येक ज़ोन को अनलॉकर-आकार या SERP-आकार के रूप में वर्गीकृत करना होगा ताकि कॉल साइट जान सके कि किस एंडपॉइंट पर जाना है।

प्रश्न: क्या मेरा Playwright या Puppeteer कोड अभी भी काम करेगा?

हाँ। दोनों प्रदाता एक CDP वेब्सोकट को उजागर करते हैं, इसलिए ऑटोमेशन बॉडी अपरिवर्तित बनी रहती है और केवल कनेक्शन स्ट्रिंग भिन्न होती है। Selenium अपवाद है: Scrapeless Scraping ब्राउज़र केवल CDP है।

प्रश्न: मेरा पोर्टेड कोड बिना त्रुटि उठाए खाली परिणाम क्यों लौटाता है?

लगभग हमेशा प्रतिक्रिया लिफाफा। Bright Data के साथ format: "raw" पृष्ठ शरीर को लौटाता है, जबकि Scrapeless data के अंदर मार्कअप के साथ JSON लौटाता है। लिफाफे को HTML के रूप में पार्स करने पर कोई मिलान नहीं मिलता और कोई अपवाद नहीं होता। response.text को response.json()["data"] में बदलें।

प्रश्न: 25 सितंबर 2026 को क्या होगा?

Bright Data की FAQ में कहा गया है कि पोर्ट 22225 और 33335 पर प्रमाणपत्र उस दिन 00:00 UTC पर समाप्त हो जाते हैं, और कि ट्रैफिक को पोर्ट 44445 पर जाना चाहिए। यह Bright Data पर रहने के साथ-साथ छोड़ने पर भी लागू होता है, इसलिए इसे किसी भी तरह के तर्क से अधिक एक शेड्यूलिंग बाधा के रूप में मानें।

प्रश्न: क्या मैं कटओवर के दौरान दोनों प्रदाताओं को एक साथ चला सकता हूँ?

हाँ, और यह अनुशंसित दृष्टिकोण है। एक इंटरफेस के पीछे दोनों पथों को रखें, प्रत्येक को एक नमूना ट्रैफ़िक भेजें, और निकाले गए क्षेत्रों की तुलना करें। उच्च-वॉल्यूम अनलॉकर कार्यभार के साथ शुरू करते हुए, प्रति कार्य कटओवर करें, सभी एक साथ नहीं।

स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सबसे लोकप्रिय लेख

सूची