JS रेंडर
यूनिवर्सल स्क्रैपिंग API एक शक्तिशाली वेब सामग्री पुनर्प्राप्ति सेवा है जो जटिल वेब पेज रेंडरिंग और इंटरैक्शन परिदृश्यों का समर्थन करती है।
विस्तृत सामग्री के लिए हमारे API दस्तावेज़ देखें।
अनुरोध संरचना
{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY",
"url": ""
},
"input": {
"url": "string",
"jsRender": {
"enabled": true,
"headless": true,
"waitUntil": "domcontentloaded",
"instructions": [],
"block": {
"resources": [],
"urls": []
},
"response": {
"type": "html",
"options": {}
}
}
}
}
मुख्य विशेषताएँ
JavaScript रेंडरिंग
JavaScript रेंडरिंग गतिशील रूप से लोड की गई सामग्री और SPA (सिंगल पेज एप्लिकेशन) को संभालने में सक्षम बनाता है। एक पूर्ण ब्राउज़र वातावरण सक्षम करता है, अधिक जटिल पृष्ठ इंटरैक्शन और रेंडरिंग आवश्यकताओं का समर्थन करता है।
input.jsRender.enabled=true
, हम अनुरोध करने के लिए ब्राउज़र का उपयोग करेंगे।
{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY"
},
"input": {
"url": "https://example.com/",
"jsRender": {
"enabled": true
}
}
}
JavaScript निर्देश
JavaScript निर्देशों का एक व्यापक सेट प्रदान करता है जो आपको वेब पेजों के साथ गतिशील रूप से बातचीत करने की अनुमति देता है।
ये निर्देश आपको तत्वों पर क्लिक करने, फॉर्म भरने, फॉर्म सबमिट करने या विशिष्ट तत्वों के प्रकट होने की प्रतीक्षा करने में सक्षम बनाते हैं, “अधिक पढ़ें” बटन पर क्लिक करने या फॉर्म सबमिट करने जैसे कार्यों के लिए लचीलापन प्रदान करते हैं।
{
"actor": "unlocker.webunlocker",
"input": {
"url": "https://example.com",
"jsRender": {
"enabled": true,
"instructions": [
{
"waitFor": [
".dynamic-content",
30000
]
// Wait for element
},
{
"click": [
"#load-more",
1000
]
// Click element
},
{
"fill": [
"#search-input",
"search term"
]
// Fill form
},
{
"keyboard": [
"press",
"Enter"
]
// Simulate key press
},
{
"evaluate": "window.scrollTo(0, document.body.scrollHeight)"
// Execute custom JS
}
]
}
}
}
यहाँ कुछ सामान्य क्रियाएँ दी गई हैं जिन्हें आप JavaScript निर्देशों के साथ कर सकते हैं:
JavaScript निर्देश संदर्भ
निर्देश | वाक्य रचना | विवरण | उदाहरण |
---|---|---|---|
waitFor | [selector, timeout] | तत्व के प्रकट होने की प्रतीक्षा करें | {"waitFor": [".content", 30000]} |
click | [selector, delay] | तत्व पर क्लिक करें | {"click": [".button", 1000]} |
fill | [selector, value] | फॉर्म भरें | {"fill": ["#input", "text"]} |
wait | milliseconds | निश्चित प्रतीक्षा समय | {"wait": 2000} |
evaluate | javascript code | JS कोड निष्पादित करें | {"evaluate": "console.log('test')"} |
keyboard | [action, value, delay?] | कीबोर्ड ऑपरेशन | नीचे दिए गए कीबोर्ड संचालन तालिका देखें |
कीबोर्ड संचालन
ऑपरेशन | वाक्य रचना | विवरण | उदाहरण |
---|---|---|---|
कुंजी दबाएँ | ["press", keyInput] | एक विशिष्ट keyInput दबाएँ | {"keyboard": ["press", "Enter"]} |
पाठ लिखें | ["type", text, delay?] | वैकल्पिक देरी के साथ पाठ लिखें | {"keyboard": ["type", "Hello", 20]} |
कुंजी नीचे | ["down", key] | एक कुंजी दबाए रखें | {"keyboard": ["down", "Shift"]} |
कुंजी ऊपर | ["up", key] | एक कुंजी छोड़ें | {"keyboard": ["up", "Shift"]} |
समर्थित विशेष KeyInput प्रकार: https://pptr.dev/api/puppeteer.keyinput
प्रतिक्रिया प्रकार
आप पैरामीटर input.jsRender.response.type
द्वारा प्रतिक्रिया प्रकार निर्दिष्ट कर सकते हैं, वैकल्पिक मान हैं:
html | plaintext | markdown | png | jpeg | network | content
, डिफ़ॉल्ट मान html
के साथ:
प्रकार | विवरण |
---|---|
html | पृष्ठ का escaped raw HTML स्ट्रिंग, CSS चयनकर्ता का समर्थन करता है |
plaintext | पृष्ठ का प्लेन टेक्स्ट स्ट्रिंग, CSS चयनकर्ता का समर्थन करता है |
markdown | पृष्ठ का escaped Markdown स्ट्रिंग, CSS चयनकर्ता का समर्थन करता है |
png | png प्रारूप के साथ पृष्ठ का base64 एन्कोडेड स्ट्रिंग, CSS चयनकर्ता का समर्थन करता है |
jpeg | jpeg प्रारूप के साथ पृष्ठ का base64 एन्कोडेड स्ट्रिंग, CSS चयनकर्ता का समर्थन करता है |
network | नेटवर्क अनुरोध कैप्चर सक्षम करें, यह पृष्ठ लोड के दौरान किए गए सभी XHR और fetch अनुरोधों को एकत्रित करेगा और उनके विवरण को escaped JSON स्ट्रिंग प्रारूप में वापस करेगा, CSS चयनकर्ता का समर्थन नहीं करता है |
content | पृष्ठ सामग्री से डेटा फ़िल्टर करें, यह परिणामों को escaped JSON स्ट्रिंग प्रारूप में देता है |
विस्तृत जानकारी इस प्रकार है:
HTML
एक पृष्ठ की HTML सामग्री निकालने के लिए उपयोग किया जाता है, जो विशुद्ध रूप से स्थिर पृष्ठों के लिए सबसे अच्छा काम करता है, और सामग्री को escaped HTML स्ट्रिंग प्रारूप में देता है।
अनुरोध में input.jsRender.response.type=html
जोड़ें:
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "html"
}
}
}
};
const response = await axios.post("https://api.scrapeless.com/api/v2/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.html', response.data.data, 'utf8');
}
})();
HTML प्रारूप में टेक्स्ट सामग्री देता है।
{
"code": 200,
"data": "<!DOCTYPE html><html><head>\n <title>Example Domain</title>\n\n <meta charset=\"utf-8\">\n <meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <style type=\"text/css\">\n body {\n background-color: #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n \n }\n div {\n width: 600px;\n margin: 5em auto;\n padding: 2em;\n background-color: #fdfdff;\n border-radius: 0.5em;\n box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);\n }\n a:link, a:visited {\n color: #38488f;\n text-decoration: none;\n }\n @media (max-width: 700px) {\n div {\n margin: 0 auto;\n width: auto;\n }\n }\n </style> \n</head>\n\n<body>\n<div>\n <h1>Example Domain</h1>\n <p>This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.</p>\n <p><a href=\"https://www.iana.org/domains/example\">More information...</a></p>\n</div>\n\n\n</body></html>"
}
सेव करने के बाद HTML फ़ाइल की उदाहरण सामग्री:
<!DOCTYPE html><html><head>
<title>Example Domain</title>
<meta charset="utf-8">
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body></html>
प्लेनटेक्स्ट
प्लेन टेक्स्ट सुविधा एक आउटपुट विकल्प है जो HTML या मार्कडाउन के बजाय प्लेन टेक्स्ट प्रारूप में स्क्रैप की गई सामग्री देता है। यह सुविधा तब अत्यधिक व्यावहारिक होती है जब सामग्री का एक साफ, बिना प्रारूपित संस्करण (किसी भी HTML टैग या मार्कडाउन स्वरूपण से मुक्त) आवश्यक हो। यह सामग्री निष्कर्षण प्रक्रिया को सुव्यवस्थित करता है, जिससे टेक्स्ट प्रोसेसिंग या विश्लेषण अधिक सुविधाजनक हो जाता है।
अनुरोध में input.jsRender.response.type=plaintext
जोड़ें:
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "plaintext"
}
}
}
};
const response = await axios.post("https://api.scrapeless.com/api/v2/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.txt', response.data.data, 'utf8');
}
})();
पृष्ठ की प्लेन टेक्स्ट सामग्री को एक स्ट्रिंग के रूप में देता है। नीचे उदाहरण देखें।
{
"code": 200,
"data": "Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\nMore information..."
}
सेव करने के बाद txt फ़ाइल की उदाहरण सामग्री:
Example Domain
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.
More information...
मार्कडाउन
मार्कडाउन प्रारूप में पृष्ठ सामग्री निकालने के लिए, विशुद्ध रूप से स्थिर मार्कडाउन पृष्ठ सबसे अच्छा काम करते हैं, यूनिवर्सल स्क्रैपिंग API मार्कडाउन प्रारूप में सामग्री वापस करेगा, जिससे इसे पढ़ना और संसाधित करना आसान हो जाता है।
अनुरोध में input.jsRender.response.type=markdown
जोड़ें:
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "markdown"
}
}
}
};
const response = await axios.post("https://api.scrapeless.com/api/v2/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.md', response.data.data, 'utf8');
}
})();
मार्कडाउन प्रारूप में टेक्स्ट सामग्री देता है।
{
"code": 200,
"data": "# Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\n[More information...](https://www.iana.org/domains/example)"
}
मार्कडाउन फ़ाइल को सेव करने के बाद उदाहरण सामग्री:
# Example Domain
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.
[More information...](https://www.iana.org/domains/example)
PNG/JPEG
आप लक्षित पृष्ठ का स्क्रीनशॉट कैप्चर कर सकते हैं और PNG या JPEG प्रारूप में एक छवि वापस कर सकते हैं। जब प्रतिक्रिया परिणाम PNG या JPEG पर सेट होता है, तो आप यह निर्दिष्ट करने के लिए input.jsRender.response.options.fullPage=true
पैरामीटर का उपयोग कर सकते हैं कि क्या लौटाया गया परिणाम एक पूर्ण-पृष्ठ स्क्रीनशॉट है।
input.jsRender.response.type=png or jpeg
को अनुरोध में जोड़कर:
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "png" // png or jpeg
}
}
}
};
const response = await axios.post("https://api.scrapeless.com/api/v2/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.png', Buffer.from(response.data.data, 'base64'));
}
})();
PNG या JPEG प्रारूप में एक base64 एन्कोडेड स्ट्रिंग देता है।
{
"code": 200,
"data": "JVBERi0xLjQKJdPr6eEKM..."
}
png/jpeg में सेव करने के बाद उदाहरण फ़ाइल:
नेटवर्क
जब input.jsRender.response.type=network
, पृष्ठ लोड के दौरान XHR
और fetch
प्रकार के सभी नेटवर्क अनुरोध कैप्चर किए जाते हैं। नेटवर्क अनुरोध डेटा को फिर एक escaped JSON स्ट्रिंग स्वरूपित किया जाता है। इस प्रतिक्रिया डेटा में URL, अनुरोध विधि, प्रतिक्रिया स्थिति कोड, शीर्षलेख, प्रतिक्रिया बॉडी आदि शामिल हैं।
यदि अनुरोध या प्रतिक्रिया बॉडी में बाइनरी सामग्री, एक बड़ी प्रतिक्रिया बॉडी या गैर-पाठ डेटा है, तो मूल सामग्री सीधे वापस नहीं की जाएगी। इसके बजाय, इसे प्लेसहोल्डर स्ट्रिंग [Preview not available ...]
के साथ चिह्नित किया गया है। आप URL, अनुरोध विधि और स्थिति कोड शर्तों द्वारा परिणामों को फ़िल्टर कर सकते हैं, input.jsRender.response.options
पैरामीटर का उपयोग करके।
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "network",
options: {
"urls": [
"/example"
],
"status": [
200
],
"methods": [
"get"
]
}
}
}
}
};
const response = await axios.post("https://api.scrapeless.com/api/v2/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.json', response.data.data, 'utf8');
}
})();
escaped JSON स्ट्रिंग के साथ डेटा देता है:
{
"code": 200,
"data": "[{\"url\":\"https://www.tiktok.com/api/explore/item_list/...]"
}
उदाहरण JSON परिणाम इस प्रकार होगा:
[
{
"url": "https://www.tiktok.com/api/explore/item_list/?WebIdLastTime=1752724401&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F135.0.0.0%20Safari%2F537.36&categoryType=120&channel=tiktok_web&clientABVersions=70508271%2C73485602%2C73547759%2C73720540%2C73810951%2C73814854%2C73848867%2C73866686%2C73944035%2C73969557%2C73990102%2C74048200%2C74129613%2C74148345%2C74157215%2C74163128%2C74176097%2C74195789%2C74213192%2C74241848%2C70405643%2C71057832%2C71200802%2C72361743%2C73171280%2C73208420&cookie_enabled=true&count=8&data_collection_enabled=false&device_id=7527893946556515853&device_platform=web_pc&enable_cache=true&focus_state=true&history_len=2&is_fullscreen=false&is_page_visible=true&language=en&odinId=7527893969448764429&os=windows&priority_region=&referer=®ion=US&screen_height=1440&screen_width=3440&tz_name=America%2FNew_York&user_is_login=false&webcast_language=en",
"method": "GET",
"resourceType": "fetch",
"status": 200,
"timestamp": 1752724403206,
"payload": null,
"requestReaders": {
"sec-ch-ua-platform": "\"Windows\"",
"referer": "https://www.tiktok.com/explore",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
"sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
"sec-ch-ua-mobile": "?0",
"accept": "*/*",
"cookie": "tt_csrf_token=KO5LUsj8-r2G0Lcbmx_RqngSiFd_VRcPiaeY; ttwid=1%7CQapzXhCnEqiLXypjvNK3iX65g9iXPk_Jpj4GGLdqNRY%7C1752724401%7Cfb5daf3940529652ba613376c011e990b0afede828ad52c4e0c14f1c422bea61; tt_chain_token=jIGTF0ppLEuXKFGayjhpyg=="
},
"responseHeaders": {
"access-control-expose-headers": "x-tt-traceflag,x-tt-logid",
"bd-tt-error-code": "0",
"cache-control": "max-age=1800, must-revalidate",
"content-encoding": "br",
"content-length": "30900",
"content-type": "application/json; charset=utf-8",
"date": "Thu, 17 Jul 2025 03:53:23 GMT",
"expires": "Thu, 17 Jul 2025 03:53:23 GMT",
"pragma": "no-cache",
"server": "nginx",
"server-timing": "cdn-cache; desc=HIT, edge; dur=0, origin; dur=0\ninner; dur=387",
"tt_stable": "1",
"x-akamai-request-id": "42a8e99d",
"x-cache": "TCP_MEM_HIT from a23-47-221-69.deploy.akamaitechnologies.com (AkamaiGHost/22.2.0-c471f2b4819e3aa253dfcc21bfdfd452) (-)",
"x-ms-token": "YAOuylbpReZ5gTM1PP8mwsmWMCxWprQ4oHRNuZQgKsADY7HTftSBu6W9raVm6PKyp-1mXt9Q6CIs0BHLRxozI_uNNEOWSvkaxFyunXX-54aBUvkuHBe2id6bY0cB",
"x-tt-logid": "20250717035100C13E2314287BF101E7D9",
"x-tt-trace-host": "0102b37aa413a15dcf9191a3f676ab4b78d5ba03a6d109c921ad21a607e80d7a40dbc3
"responseSize": 249297,
"error": null
}
]
विषय-वस्तु
जब input.jsRender.response.type=content
होता है, तो यह पृष्ठ सामग्री से JSON-स्वरूपित डेटा को फ़िल्टर करेगा, प्रतिक्रिया JSON स्ट्रिंग स्वरूप में स्थिर होगी। input.jsRender.response.options.outputs
पैरामीटर आपको स्क्रैप किए गए पृष्ठ सामग्री से निकाले जाने वाले डेटा प्रकारों को ठीक से परिभाषित करने की अनुमति देता है, जिससे केवल आवश्यक जानकारी के कुशल पुनर्प्राप्ति को सक्षम किया जा सकता है। ऐसा करने से, आप प्रसंस्करण समय को कम कर सकते हैं और अपने उपयोग के मामले के लिए सबसे प्रासंगिक डेटा पर ध्यान केंद्रित कर सकते हैं।
यदि input.jsRender.response.options.outputs
खाली है, तो सभी आउटपुट वापस कर दिए जाएँगे, वैकल्पिक आउटपुट में शामिल हैं:
phone_numbers
, headings
, images
, audios
, videos
, links
, menus
, hashtags
, emails
, metadata
, tables
,
favicon
.
विस्तृत उपयोग के लिए, नीचे दिए गए कोड की जाँच करें।
const axios = require('axios');
const fs = require('fs');
(async () => {
// विन्यास
const url = "https://api.scrapeless.com/api/v2/unlocker/request";
const token = "API Key";
const headers = {"x-api-token": token, "Content-Type": "application/json"};
const payload = {
actor: "unlocker.webunlocker",
proxy: {
country: "ANY"
},
input: {
url: "https://www.example.com",
jsRender: {
enabled: true,
response: {
type: "content",
options: {
outputs: [
"phone_numbers",
"headings",
"images",
"audios",
"videos",
"links",
"menus",
"hashtags",
"emails",
"metadata",
"tables",
"favicon"
]
}
}
}
}
};
try {
const response = await axios.post(url, payload, {headers, timeout: 60000});
if (response.status !== 200) {
throw newError(`HTTP Error: ${response.status}`);
}
const data = response.data;
if (data.code !== 200) {
throw newError(`API Error: ${data}`);
}
const content = data.data || '';
// सहेजें और परिणाम लौटाएँ
fs.writeFileSync('response.json', content, 'utf8');
console.log('✅ सफलता! सामग्री response.json के रूप में सहेजी गई');
returnJSON.parse(content);
} catch (error) {
console.error('❌ त्रुटि:', error.message);
throw error;
}
})()
यहाँ कुछ उदाहरण दिए गए हैं:
ईमेल
मानक-प्रारूप ईमेल पते, जैसे example@example.com, निकालने के लिए CSS चयनकर्ताओं और नियमित अभिव्यक्तियों का उपयोग करें।
{
"code": 200,
"data": "{\"emails\":[\"market@scrapeless.com\"]}"
}
फ़ोन नंबर
फ़ोन नंबर निकालने के लिए CSS चयनकर्ताओं और नियमित अभिव्यक्तियों का उपयोग करें, जिसमें tel:
प्रोटोकॉल वाली लिंक पर ध्यान केंद्रित किया गया है।
उदाहरण: outputs=phone_numbers
{
"code": 200,
"data": "{ \"phone_numbers\": [ \"+1-111-111-111\" ] }"
}
शीर्षक
HTML में H1
से H6
तक शीर्षक टेक्स्ट निकालें।
उदाहरण: outputs=headings
{
"code": 200,
"data": "{\"headings\":[\"Example Domain\"]}"
}
चित्र
img
टैग से छवि स्रोत निकालें। केवल src
विशेषता लौटाएँ।
उदाहरण: outputs=images
{
"code": 200,
"data": "{\"images\":[\"https://www.scrapeless.com/_next/image?url=%2Fassets%2Fimages%2Ftoolkit%2Flight%2Fimg-2.png&w=750&q=100\"]}"
}
ऑडियो
audio
टैग के भीतर source
तत्वों से ऑडियो स्रोत निकालें। केवल src
विशेषता लौटाएँ।
उदाहरण: outputs=audios
{
"code": 200,
"data": "{\"audios\":[\"https://example.com/audio.mp3\"]}"
}
वीडियो
video
टैग के भीतर source
तत्वों से वीडियो स्रोत निकालें। केवल src
विशेषता लौटाएँ।
उदाहरण: outputs=videos
{
"code": 200,
"data": "{\"videos\":[\"https://example.com/video.mp4\"]}"
}
लिंक
a
टैग से URL निकालें। केवल href
विशेषता लौटाएँ।
उदाहरण: outputs=links
{
"code": 200,
"data": "{\"links\":[\"https://app.scrapeless.com/landing/guide\",\"https://www.scrapeless.com/en\",\"https://www.scrapeless.com/en/pricing\",\"https://docs.scrapeless.com/\",\"https://backend.scrapeless.com/app/api\",\"https://www.producthunt.com/posts/scrapeless-deep-serpapi\",\"https://www.g2.com/products/scrapeless/reviews\",\"https://www.trustpilot.com/review/scrapeless.com\",\"https://slashdot.org/software/p/Scrapeless/\",\"https://tekpon.com/software/scrapeless/reviews/\",\"https://www.scrapeless.com/en/product/deep-serp-api\",\"https://www.scrapeless.com/en/product/scraping-browser\",\"https://www.scrapeless.com/en/product/scraping-api\",\"https://www.scrapeless.com/en/product/universal-scraping-api\",\"https://www.scrapeless.com/en/solutions/e-commerce\",\"https://www.scrapeless.com/en/solutions/seo\",\"https://www.scrapeless.com/en/solutions/real-estate\",\"https://www.scrapeless.com/en/solutions/travel-hotel-airline\",\"https://www.scrapeless.com/en/solutions/social-media\",\"https://www.scrapeless.com/en/solutions/market-research\",\"https://www.scrapeless.com/en/blog\",\"https://www.scrapeless.com/en/blog/deep-serp-api-online\",\"https://www.scrapeless.com/en/blog/scrapeless-web-scraping-toolkit\",\"https://www.scrapeless.com/en/blog/google-shopping-scrape\",\"https://backend.scrapeless.com/app/api/v1/public/links/github\",\"https://backend.scrapeless.com/app/api/v1/public/links/youtube\",\"mailto:market@scrapeless.com\",\"https://www.scrapeless.com/en/ai-agent\",\"https://browserless.scrapeless.com/\",\"https://www.scrapeless.com/en/solutions/temu\",\"https://www.scrapeless.com/en/solutions/walmart\",\"https://www.scrapeless.com/en/solutions/shopee\",\"https://www.scrapeless.com/en/solutions/lazada\",\"https://www.scrapeless.com/en/solutions/amazon\",\"https://www.scrapeless.com/en/solutions/google-trends\",\"https://www.scrapeless.com/en/solutions/google-search\",\"https://www.scrapeless.com/en/solutions/airbnb\",\"https://www.scrapeless.com/en/solutions/scoot\",\"https://www.scrapeless.com/en/solutions/latam\",\"https://www.scrapeless.com/en/solutions/localiza\",\"https://www.scrapeless.com/en/solutions/tiktok\",\"https://www.scrapeless.com/en/solutions/instagram\",\"https://www.scrapeless.com/en/integration\",\"https://www.scrapeless.com/en/faq\",\"https://www.scrapeless.com/en/glossary\",\"https://www.scrapeless.com/en/legal/privacy-policy\",\"https://www.scrapeless.com/en/legal/terms\",\"https://www.scrapeless.com/en/legal/terms#refund-policy\",\"https://www.scrapeless.com/en/legal/check-your-data\",\"https://backend.scrapeless.com/app/api/v1/public/links/discord\"]}"
}
मेनू
मेनू टैग के भीतर li
तत्वों से मेनू आइटम निकालें।
उदाहरण: outputs=menus
{
"code": 200,
"data": "{\"links\":[ \"Coffee\", \"Tea\", \"Milk\" ]}"
}
हैशटैग
टिपिकल हैशटैग पैटर्न, जैसे #example
से मेल खाने के लिए नियमित अभिव्यक्तियों का उपयोग करके हैशटैग प्रारूप निकालें।
उदाहरण: outputs = hashtags
{
"code": 200,
"data": "{\"hashtags\":[\"#docsearch\",\"#search\"]}"
}
मेटाडेटा
head
सेक्शन में meta
टैग से मेटा जानकारी निकालें, name: content
प्रारूप में name
और content
विशेषताओं को लौटाएँ।
उदाहरण: outputs=metadata
{
"code": 200,
"data": "{\"metadata\":[\"viewport: width=device-width, initial-scale=1\",\"description: Scrapeless is the best full-stack web scraping toolkit offering Scraping API, Scraping Browser\"]}"
}
टेबल
टेबल तत्वों से डेटा निकालें और JSON प्रारूप में टेबल डेटा लौटाएँ, जिसमें आयाम, शीर्षक और सामग्री शामिल हैं।
उदाहरण: outputs=tables
{
"code": 200,
"data": "{\"tables\":[{\"dimensions\":{\"rows\":7,\"columns\":3,\"heading\":true},\"heading\":[\"Company\",\"Contact\",\"Country\"],\"content\":[{\"Company\":\"Alfreds Futterkiste\",\"Contact\":\"Maria Anders\",\"Country\":\"Germany\"},{\"Company\":\"Centro comercial Moctezuma\",\"Contact\":\"Francisco Chang\",\"Country\":\"Mexico\"},{\"Company\":\"Ernst Handel\",\"Contact\":\"Roland Mendel\",\"Country\":\"Austria\"},{\"Company\":\"Island Trading\",\"Contact\":\"Helen Bennett\",\"Country\":\"UK\"},{\"Company\":\"Laughing Bacchus Winecellars\",\"Contact\":\"Yoshi Tannamuri\",\"Country\":\"Canada\"},{\"Company\":\"Magazzini Alimentari Riuniti\",\"Contact\":\"Giovanni Rovelli\",\"Country\":\"Italy\"}]},{\"dimensions\":{\"rows\":11,\"columns\":2,\"heading\":true},\"heading\":[\"Tag\",\"Description\"],\"content\":[{\"Tag\":\"<table>\",\"Description\":\"Defines a table\"},{\"Tag\":\"<th>\",\"Description\":\"Defines a header cell in a table\"},{\"Tag\":\"<tr>\",\"Description\":\"Defines a row in a table\"},{\"Tag\":\"<td>\",\"Description\":\"Defines a cell in a table\"},{\"Tag\":\"<caption>\",\"Description\":\"Defines a table caption\"},{\"Tag\":\"<colgroup>\",\"Description\":\"Specifies a group of one or more columns in a table for formatting\"},{\"Tag\":\"<col>\",\"Description\":\"Specifies column properties for each column within a <colgroup> element\"},{\"Tag\":\"<thead>\",\"Description\":\"Groups the header content in a table\"},{\"Tag\":\"<tbody>\",\"Description\":\"Groups the body content in a table\"},{\"Tag\":\"<tfoot>\",\"Description\":\"Groups the footer content in a table\"}]}]}"
}
फ़ेविकॉन
HTML head
सेक्शन में link
तत्व से फ़ेविकॉन URL निकालें।
उदाहरण: outputs=favicon
{
"code": 200,
"data": "{\"favicon\":\"https://www.scrapeless.com/favicon.ico\"}"
}
संसाधन नियंत्रण
प्रदर्शन और बैंडविड्थ उपयोग को अनुकूलित करने के लिए संसाधन लोडिंग नियंत्रण प्रणाली।
{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY",
"url": ""
},
"input": {
"url": "string",
"jsRender": {
"enabled": true,
"block": {
"resources": [
"Image",
"Font",
"Stylesheet",
"Script"
],
"urls": [
// वैकल्पिक, URL पैटर्न-आधारित अवरोधन
"*.analytics.com/*",
"*/ads/*"
]
}
}
}
}
पूर्ण संसाधन प्रकार संदर्भ:
संसाधन प्रकार | विवरण | प्रभाव |
---|---|---|
Document | मुख्य दस्तावेज़ और iframes | कोर पृष्ठ सामग्री |
Stylesheet | CSS फ़ाइलें | पृष्ठ शैली और लेआउट |
Image | चित्र और आइकन | दृश्य सामग्री |
Media | ऑडियो और वीडियो संसाधन | मल्टीमीडिया सामग्री |
Font | वेब फ़ॉन्ट | टेक्स्ट रेंडरिंग |
Script | जावास्क्रिप्ट फ़ाइलें | पृष्ठ कार्यक्षमता |
TextTrack | वीडियो उपशीर्षक और कैप्शन | मीडिया सुलभता |
XHR | XMLHttpRequest कॉल | लेगेसी एसिंक अनुरोध |
Fetch | फ़ेच API अनुरोध | आधुनिक एसिंक अनुरोध |
Prefetch | पूर्व-प्राप्त संसाधन | प्रदर्शन अनुकूलन |
EventSource | सर्वर-भेजित ईवेंट | वास्तविक समय अद्यतन |
WebSocket | वेबसॉकेट कनेक्शन | द्विदिश संचार |
Manifest | वेब ऐप मैनिफेस्ट | PWA कॉन्फ़िगरेशन |
SignedExchange | हस्ताक्षरित HTTP एक्सचेंज | सामग्री प्रामाणिकता |
Ping | पिंग अनुरोध | विश्लेषण और ट्रैकिंग |
CSPViolationReport | CSP उल्लंघन रिपोर्ट | सुरक्षा निगरानी |
Preflight | CORS पूर्व अनुरोध | क्रॉस-ओरिजिन सुरक्षा |
Other | अवर्गीकृत संसाधन | विविध |
उपयोग उदाहरण:
{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY",
"url": ""
},
"input": {
"url": "string",
"jsRender": {
"enabled": true,
"block": {
"resources": [
"Image",
"Font",
"Stylesheet",
"Script",
"Media",
"Ping",
"Prefetch"
]
}
}
}
}
संसाधन अवरोधन के लिए सर्वोत्तम अभ्यास:
-
प्रदर्शन अनुकूलन
- बुद्धिमानी से संसाधन अवरोधन का उपयोग करें, तेज लोडिंग के लिए गैर-आवश्यक संसाधनों को ब्लॉक करें
- कम नेटवर्क उपयोग के लिए
Prefetch
औरPing
को ब्लॉक करने पर विचार करें Document
और महत्वपूर्णScript
संसाधनों को अनब्लॉक रखें
-
बैंडविड्थ प्रबंधन
- बैंडविड्थ-गहन पृष्ठों के लिए
Image
औरMedia
को ब्लॉक करें - इसके बजाय सिस्टम फ़ॉन्ट का उपयोग करने के लिए
Font
को ब्लॉक करने पर विचार करें
- बैंडविड्थ-गहन पृष्ठों के लिए
-
स्थिरता वृद्धि
- अनुरोध पुन: प्रयास तंत्र लागू करें
- त्रुटि हैंडलिंग तर्क जोड़ें
- निश्चित
wait
के बजायwaitFor
का उपयोग करें
-
संसाधन दक्षता
- आवश्यकतानुसार संसाधन लोड करें
- अनावश्यक कनेक्शन को तुरंत बंद करें
नोट: संसाधन प्रकार स्ट्रिंग केस-संवेदनशील हैं। संदर्भ तालिका में दिखाए अनुसार सटीक मिलान का उपयोग करें।