वेब अनलॉकर एपीआई: किसी भी पृष्ठ को एचटीएमएल, मार्कडाउन या पीएनजी में परिवर्तित करें
Advanced Data Extraction Specialist
TL;DR:
- वेब अनलॉकर किसी भी URL को एक POST के साथ साफ डेटा में बदल देता है।
unlocker.webunlockerपर एक URL भेजें; HTML, प्लेनटेक्स्ट, मार्कडाउन, एक स्क्रीनशॉट, या निकाले गए सामग्री के रूप में पृष्ठ वापस प्राप्त करें - प्रबंधित करने के लिए कोई ब्राउज़र नहीं। - JavaScript रेंडरिंग एक फ्लैग है, कोई अलग उत्पाद नहीं।
jsRender.enabled: trueसेट करें और प्रतिक्रिया बनने से पहले पृष्ठ को एक असली ब्राउज़र में रेंडर किया जाता है, इसलिए क्लाइंट-साइड सामग्री पहले से मौजूद है। - आप प्रतिक्रिया के आकार का चयन करते हैं।
response.typeमें से एक हो सकता हैhtml,plaintext,markdown,png,jpeg,network, याcontent— LLMs के लिए मार्कडाउन, स्क्रीनशॉट के लिए PNG, संरचित निकासी के लिएcontentका अनुरोध करें। - प्रॉक्सी देश एक फ़ील्ड है। इस क्षेत्र में आवासीय निर्गम के माध्यम से अनुरोध को रूट करने के लिए
proxy.countryसेट करें; असंगत क्षेत्र एक सामान्य कारण है कि पृष्ठ अलग तरह से रेंडर होता है। - हर कॉल को नियंत्रित करने के लिए दो टाइमआउट हैं। 30 सेकंड का पृष्ठ-लोड सीमा और 180 सेकंड का वैश्विक निष्पादन सीमा - पृष्ठ-लोड सीमा को प्राथमिकता दी जाती है।
- शुरुआत के लिए स्वतंत्र। नए Scrapeless खातों में मुफ्त युनिवर्सल स्क्रैपिंग API उपयोग शामिल है - app.scrapeless.com पर साइन अप करें।
परिचय: एक एंडपॉइंट, कोई भी पृष्ठ, आपके द्वारा अनुरोधित आकार में
अधिकांश स्क्रैपिंग कोड अपने प्रयास को डेटा के चारों ओर खर्च करता है: एक ब्राउज़र लॉन्च करना, JavaScript का इंतजार करना, ब्लॉक को संभालना, फिर HTML को कुछ उपयोगी में पार्स करना। Scrapeless यूनिवर्सल स्क्रैपिंग API इसे एकल HTTP अनुरोध में समेट देती है। आप वेब अनलॉकर अभिनेता को एक URL POST करते हैं, और प्रतिक्रिया पृष्ठ है - पहले से रेंडर किया गया, पहले से उस प्रारूप में जो आपने अनुरोध किया था।
यह गाइड unlocker.webunlocker अभिनेता के अंत से अंत तक चलती है: अनुरोध का आकार, एक पहला curl, प्रतिक्रियाEnvelope, एक पायथन एकीकरण, सात प्रतिक्रिया प्रकार जो JavaScript रेंडरिंग वापस कर सकती है, और अनुरोधों को साफ रखने का तरीका। नीचे दी गई प्रत्येक अनुरोध और प्रतिक्रिया लाइव API के खिलाफ कैप्चर की गई थी।
आप इसके साथ क्या कर सकते हैं
- एक पृष्ठ को कच्चे HTML के रूप में लाएं - एक साधारण GET सफा निर्गम के माध्यम से, जब आप खुद मार्कअप को पार्स करेंगे।
- JavaScript-भारी पृष्ठों को रेंडर करें -
jsRender.enabledसेट करें और सामग्री पढ़ें जो केवल क्लाइंट चलाने के बाद मौजूद होती है। - LLM के लिए मार्कडाउन प्राप्त करें -
type: markdownका अनुरोध करें और परिणाम को सीधे RAG पाइपलाइन या प्रॉम्प्ट में डालें। - एक स्क्रीनशॉट कैप्चर करें -
type: pngयाjpegका अनुरोध करें और रेंडर की गई व्यू पोर्ट को एक छवि के रूप में प्राप्त करें। - संरचित सामग्री निकाले - पृष्ठ से शीर्षक, लिंक, तालिकाएँ, ईमेल, चित्र, और मेटाडेटा निकालने के लिए
type: contentका अनुरोध करें। - नेटवर्क प्रतिक्रियाएँ देखें - पृष्ठ द्वारा निर्मित XHR/fetch प्रतिक्रियाओं को कैप्चर करने के लिए
type: networkका अनुरोध करें, URL, स्थिति, और विधि द्वारा फ़िल्टर किया गया। - पहले पृष्ठ को नियंत्रित करें - प्रतिक्रिया बनने से पहले
instructions(एक सेलेक्टर का इंतजार करें, क्लिक करें, भरें, कुंजी दबाएँ) चलाएँ।
क्यों Scrapeless यूनिवर्सल स्क्रैपिंग API
यूनिवर्सल स्क्रैपिंग API प्रबंधित वेब-अनलॉकिंग सतह है: आप एक URL भेजते हैं, यह रेंडरिंग, निर्गम, और एंटी-डिटेक्शन को संभालता है, और साफ डेटा लौटाता है। इस कार्यप्रवाह के लिए विशेष रूप से, यह लाता है:
- क्लाउड-साइड JavaScript रेंडरिंग - एक असली ब्राउज़र पृष्ठ चलाता है, इसलिए एकल-पृष्ठ एप्लिकेशन और लेजी-लोडेड सामग्री प्रतिक्रिया बनने से पहले हल होती है।
- 195+ देशों में आवासीय प्रॉक्सियां -
proxy.countryके माध्यम से रूट करें ताकि बाहर जाने वाले IP की प्रतिष्ठा साफ हो और भू-रूटेड पृष्ठ सही ढंग से सेवा प्रदान करें। - स्वचालित चुनौती हैंडलिंग - reCAPTCHA v2, Cloudflare टर्नस्टाइल, और Cloudflare इंटरस्टिशियल अभिनेता के अंदर संभाले गए हैं।
- सात प्रतिक्रिया प्रारूप - HTML, प्लेनटेक्स्ट, मार्कडाउन, PNG, JPEG, नेटवर्क कैप्चर, और उसी एंडपॉइंट से संरचित सामग्री।
- एकल HTTP अनुबंध - कोई ब्राउज़र जीवन चक्र, कोई ड्राइवर संस्करण नहीं; प्रतिक्रिया डेटा है।
मुफ्त योजना पर अपना API कुंजी प्राप्त करें app.scrapeless.com पर।
आवश्यकताएँ
- एक Scrapeless खाता और API कुंजी - app.scrapeless.com पर साइन अप करें
- पहले अनुरोध के लिए
curl, और एकीकरण के लिए पायथन 3.10+ (या Node.js 18+) - HTTP और JSON के साथ बुनियादी परिचितता
वेब अनलॉकर कैसे काम करता है
हर कॉल एक एंडपॉइंट पर एक POST है जिसमें JSON बॉडी {actor, input, proxy} होती है।
अनुरोध पैरामीटर
| फ़ील्ड | कहाँ | अर्थ |
|---|---|---|
actor |
शीर्ष स्तर | unlocker.webunlocker |
input.url |
इनपुट | पृष्ठ जिसे लाना है |
input.method |
इनपुट | HTTP विधि (डिफ़ॉल्ट GET) |
input.redirect |
इनपुट | रीडायरेक्ट का पालन करें (true/false) |
input.jsRender |
इनपुट | { enabled, response, instructions, block } — रेंडर विकल्प |
proxy.country |
प्रॉक्सी | ISO देश कोड या ANY |
Auth x-api-token हेडर है। प्रतिक्रिया पैकेज हमेशा { "code": 200, "data": ... } होता है।
कर्ल के साथ त्वरित कैप्चर
आवासीय निर्गम के माध्यम से HTML के रूप में पृष्ठ लाएं:
bash
curl -X POST https://api.scrapeless.com/api/v2/unlocker/request \
-H "x-api-token: ${SCRAPELESS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
```json
"अभिनेता": "unlocker.webunlocker",
"इनपुट": { "url": "https://www.example.com", "method": "GET", "redirect": false },
"प्रॉक्सी": { "देश": "ANY" }
}'
प्रतिक्रिया लिफाफा
json
// उदाहरणात्मक नमूना — लिफाफा आकार सटीक है; लाइव GET ऊपर कोड 200 के साथ 559 बाइट का example.com HTML लौटाया
{
"कोड": 200,
"डाटा": "<!doctype html><html>…</html>"
}
कोड 200 का मतलब है कि अनुरोध सफल हुआ; डाटा पेलोड लेकर आता है — यहाँ HTML टेक्स्ट, अन्य प्रतिक्रिया प्रकारों के लिए मार्कडाउन या base64 छवि।
Python में API को एकीकृत करना
Python से वही कॉल, पर्यावरण से कुंजी पढ़ते हुए:
python
import os
import requests
API_KEY = os.environ["SCRAPELESS_API_KEY"]
resp = requests.post(
"https://api.scrapeless.com/api/v2/unlocker/request",
headers={"x-api-token": API_KEY, "Content-Type": "application/json"},
json={
"अभिनेता": "unlocker.webunlocker",
"इनपुट": {"url": "https://www.example.com", "method": "GET", "redirect": False},
"प्रॉक्सी": {"देश": "ANY"},
},
timeout=70,
)
data = resp.json()
if data.get("कोड") == 200:
html = data["डाटा"]
print(len(html), "बाइट का HTML")
अपनी API कुंजी मुफ्त योजना पर प्राप्त करें: app.scrapeless.com
JavaScript का रेंडर करना: सात प्रतिक्रिया प्रकार
यदि पहले वास्तविक ब्राउज़र में पृष्ठ को रेंडर करना है, तो jsRender जोड़ें। response.type यह निर्णय करता है कि क्या वापस आता है। पृष्ठ के लिए मार्कडाउन अनुरोध करें — LLM को फ़ीड करने के लिए आदर्श:
python
payload = {
"अभिनेता": "unlocker.webunlocker",
"प्रॉक्सी": {"देश": "ANY"},
"इनपुट": {
"url": "https://www.example.com",
"jsRender": {
"enabled": True,
"response": {"type": "markdown"},
},
},
}
resp = requests.post(
"https://api.scrapeless.com/api/v2/unlocker/request",
json=payload,
headers={"x-api-token": API_KEY, "Content-Type": "application/json"},
timeout=70,
)
print(resp.json()["डाटा"])
# "# उदाहरण डोमेन\n\nयह डोमेन दस्तावेज़ उदाहरणों में उपयोग के लिए है..."
type फ़ील्ड प्रारूप चुनता है:
response.type |
लौटाता है |
|---|---|
html |
JavaScript चलने के बाद रेंडर किया गया HTML |
plaintext |
दृश्य पाठ, मार्कअप स्ट्रिप्ट किया गया |
markdown |
पृष्ठ को मार्कडाउन के रूप में (LLM-तैया) |
png / jpeg |
base64 स्ट्रिंग के रूप में एक स्क्रीनशॉट |
network |
XHR/fetch प्रतिक्रियाएँ कैप्चर की गईं, urls, status, methods द्वारा फ़िल्टर की गईं |
content |
संरचित निकासी — हेडिंग, लिंक, तालिकाएँ, छवियाँ, ईमेल, मेटाडेटा |
एक स्क्रीनशॉट के लिए, png का अनुरोध करें और base64 data को बाइट्स में डिकोड करें:
python
import base64
payload["इनपुट"]["jsRender"]["response"] = {"type": "png"}
resp = requests.post(
"https://api.scrapeless.com/api/v2/unlocker/request",
json=payload,
headers={"x-api-token": API_KEY, "Content-Type": "application/json"},
timeout=70,
)
with open("page.png", "wb") as f:
f.write(base64.b64decode(resp.json()["डाटा"]))
कैप्चर से पहले पृष्ठ को चलाना
जब सामग्री केवल इंटरैक्शन के बाद ही दिखाई देती है, तो निर्देश पास करें — प्रत्येक एक क्रिया है जिसे रेंडरर प्रतिक्रिया बनाने से पहले क्रम में चलाता है:
json
{
"अभिनेता": "unlocker.webunlocker",
"इनपुट": {
"url": "https://example.com",
"jsRender": {
"enabled": true,
"instructions": [
{ "waitFor": [".dynamic-content", 30000] },
{ "click": ["#load-more", 1000] },
{ "fill": ["#search-input", "search term"] },
{ "keyboard": ["press", "Enter"] },
{ "evaluate": "window.scrollTo(0, document.body.scrollHeight)" }
]
}
}
}
आप यह भी कर सकते हैं कि जो संसाधन प्रकार आपको आवश्यक नहीं हैं उन्हें jsRender.block.resources के साथ अवरुद्ध करके बैंडविड्थ को कम करें (उदाहरण के लिए Image, Font, Media, Stylesheet), जिसे फ़ेच परत संसाधन श्रेणियों के अनुसार छोड़ देती है जो Fetch API में परिभाषित किया गया है।
सामान्य समस्याओं से बचने के लिए कैसे
- एक फ़ील्ड जो पृष्ठ पर नहीं है वह null है, यह कोई त्रुटि नहीं है। प्रत्येक निकाली गई फ़ील्ड को वैकल्पिक मानें और उसके अभाव के लिए सुरक्षा करें बजाय इसके कि यह मौजूद हो इस पर भरोसा करें।
- दो टाइमआउट का ख्याल रखें। एक पृष्ठ-लोड ऊपरी सीमा 30 सेकंड और एक वैश्विक निष्पादन ऊपरी सीमा 180 सेकंड हर कॉल को सीमित करती है, और पृष्ठ-लोड सीमा प्राथमिकता लेती है —
waitForमानों को उस बजट के भीतर रखें। HTTP semantics specification वह स्थिति कोड परिभाषित करती है जो आप देखेंगे यदि कोई लक्ष्य स्वयं त्रुटि करता है। - देश को सामग्री से पिन करें। यदि कोई पृष्ठ भू-मार्ग निर्देशित करता है, तो
proxy.countryको उस क्षेत्र में सेट करें जो आपको आवश्यक संस्करण प्रदान करता है; जब ऐसा नहीं होता है, तोANYठीक है। - जानबूझकर प्रतिक्रिया प्रकार चुनें। जब आपको डेटा चाहिए हो, तब
markdownयाcontentका अनुरोध करें,htmlनहीं जिसे आपको पार्स करना पड़ेगा — निष्कर्षण हर स्थिति में सर्वर-साइड होता है, और ऑटोमेटेड-traffic पैटर्न जो अनलॉकर संभालता है, को OWASP ऑटोमेटेड खतरों परियोजना में सूचीबद्ध किया गया है।
निष्कर्ष: वह पृष्ठ, जिस रूप में आपको चाहिए
वेब अनलॉकर स्क्रैप को एक निर्णय में घटित करता है: कौन सा URL, और कौन सा प्रतिक्रिया प्रकार। रेंडरिंग, मार्ग-निकासी, और एंटी-डिटेक्शन अभिनेता के भीतर संभाले जाते हैं, इसलिए एक जावास्क्रिप्ट-भारी पृष्ठ एक ही अनुरोध में साफ़ मार्कडाउन या एक स्क्रीनशॉट बन जाता है। जब आपको एक पूर्ण इंटरैक्टिव सत्र की आवश्यकता हो, तो इसे स्क्रेपींग ब्राउज़र के साथ जोड़ें, और रिहायशी बनाम डेटा सेंटर मार्ग-निकासी पर पढ़ें, क्योंकि प्रॉक्सी प्रतिष्ठा अधिकांश रेंडर परिणामों का फैसला करती है। यूनिवर्सल स्क्रैपिंग एपीआई docs हर क्षेत्र को कवर करती है।
क्या आप अपने AI-शक्ति प्राप्त डेटा पाइपलाइन बनाने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों, एक मुफ्त योजना का दावा करें और उन डेवलपर्स से जुड़ें जो निष्कर्षण पाइपलाइनों का निर्माण कर रहे हैं: डिस्कॉर्ड · टेलीग्राम।
app.scrapeless.com पर मुफ्त यूनिवर्सल स्क्रैपिंग एपीआई उपयोग के लिए साइन अप करें, और पैमाने के लिए मूल्य निर्धारण देखें।
अक्सर पूछे जाने वाले प्रश्न
प्रश्न: वेब अनलॉकर और स्क्रेपींग ब्राउज़र में क्या अंतर है?
वेब अनलॉकर एक एकल अनुरोध/प्रतिक्रिया अंत बिंदु है — एक URL भेजें, एक कॉल में पृष्ठ वापस प्राप्त करें। स्क्रेपींग ब्राउज़र एक पूर्ण इंटरैक्टिव क्लाउड ब्राउज़र है जिसे आप पप्पेटियर या प्ले राइट के साथ चलाते हैं। फेच-एंड-पार्स के लिए अनलॉकर का उपयोग करें; बहु-चरण सत्रों के लिए ब्राउज़र का उपयोग करें।
प्रश्न: क्या मुझे जावास्क्रिप्ट रेंडरिंग सक्षम करने की आवश्यकता है?
केवल जब आवश्यक सामग्री क्लाइंट-रेंडर की जाती है। एक साधारण GET सर्वर HTML वापस करता है; jsRender.enabled: true जोड़ने से पृष्ठ पहले एक वास्तविक ब्राउज़र में चलाया जाता है, जो कि आप एकल-पृष्ठ ऐप्स और लेज़ी-लोड की गई सामग्री के लिए चाहते हैं।
प्रश्न: मुझे LLM पाइपलाइन के लिए कौन सा प्रतिक्रिया प्रकार उपयोग करना चाहिए?
markdown — यह पृष्ठ को साफ़ मार्कडाउन के रूप में लौटाता है जिसमें मार्कअप हटाया गया है, जो अधिकांश RAG और प्रॉम्प्ट पाइपलाइनों की आवश्यकता होती है। प्रॉज में हेडिंग, लिंक, तालिकाओं की आवश्यकता होने पर content का उपयोग करें।
प्रश्न: मैं स्क्रीनशॉट कैसे प्राप्त करूं?
response.type को png या jpeg पर सेट करें; data फ़ील्ड एक बेस64 स्ट्रिंग के रूप में वापस आती है जिसे आप इमेज बाइट्स में डिकोड करते हैं।
प्रश्न: क्या मुझे प्रॉक्सी की आवश्यकता है?
मार्ग-निकासी अंतर्निहित है। किसी 특정 क्षेत्र में रिहायशी आईपी के माध्यम से मार्ग निर्धारित करने के लिए proxy.country सेट करें, या ANY सेट करें ताकि सेवा का चयन हो सके। जब एक पृष्ठ जियो-मार्ग-निर्देशित या डेटा सेंटर आईपी को चुनौती देता है, तो एक देश को पिन करना महत्वपूर्ण है।
प्रश्न: समय सीमाएं क्या हैं?
एक स्थिर 30-सेकंड का पृष्ठ-लोड सीमा और एक 180-सेकंड का वैश्विक निष्पादन सीमा है। पृष्ठ-लोड सीमा प्राथमिकता लेती है और वैश्विक सीमा से पहले कॉल को समाप्त कर सकती है, इसलिए किसी भी waitFor मानों को उस बजट के भीतर रखें।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



