दस्तावेज़Web UnlockerJS रेंडरिंग

JS रेंडर

Web Unlocker 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 रेंडरिंग गतिशील रूप से लोड की गई सामग्री और SPAs (Single Page Applications) को संभालने में सक्षम बनाती है। यह एक पूर्ण ब्राउज़र वातावरण सक्षम करती है, जो अधिक जटिल पेज इंटरैक्शन और रेंडरिंग आवश्यकताओं का समर्थन करती है।

input.jsRender.enabled=true, तब हम अनुरोध करने के लिए ब्राउज़र का उपयोग करेंगे।

{
  "actor": "unlocker.webunlocker",
  "proxy": {
    "country": "ANY"
  },
  "input": {
    "url": "https://example.com/",
    "jsRender": {
      "enabled": true
    }
  }
}

JavaScript निर्देश

JavaScript निर्देशों का एक व्यापक सेट प्रदान करता है जो आपको वेब पेजों के साथ गतिशील रूप से इंटरैक्ट करने की अनुमति देता है।

ये निर्देश आपको एलिमेंट पर क्लिक करने, फ़ॉर्म भरने, फ़ॉर्म सबमिट करने, या किसी विशिष्ट एलिमेंट के प्रकट होने की प्रतीक्षा करने में सक्षम बनाते हैं, जो “read more” बटन पर क्लिक करने या फ़ॉर्म सबमिट करने जैसे कार्यों के लिए लचीलापन प्रदान करते हैं।

{
  "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 Instructions के साथ कर सकते हैं:

जावास्क्रिप्ट निर्देश संदर्भ

निर्देशवाक्य रचनाविवरणउदाहरण
waitFor[selector, timeout]एलिमेंट के प्रकट होने की प्रतीक्षा करें{"waitFor": [".content", 30000]}
click[selector, delay]एलिमेंट पर क्लिक करें{"click": [".button", 1000]}
fill[selector, value]फ़ॉर्म भरें{"fill": ["#input", "text"]}
waitmillisecondsनिश्चित प्रतीक्षा समय{"wait": 2000}
evaluatejavascript codeJS कोड निष्पादित करें{"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:

typeविवरण
htmlपेज का escaped raw HTML स्ट्रिंग, CSS सेलेक्टर का समर्थन करता है
plaintextपेज का 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>

सादा पाठ

plain text सुविधा एक आउटपुट विकल्प है जो स्क्रैप की गई सामग्री को HTML या Markdown के बजाय plain text फ़ॉर्मेट में लौटाता है। यह सुविधा तब अत्यधिक व्यावहारिक होती है जब सामग्री के एक स्वच्छ, अनफ़ॉर्मेटेड संस्करण (किसी भी HTML टैग या Markdown फ़ॉर्मेटिंग से मुक्त) की आवश्यकता होती है। यह सामग्री निष्कर्षण प्रक्रिया को सरल बनाता है, जिससे टेक्स्ट प्रोसेसिंग या विश्लेषण अधिक सुविधाजनक हो जाता है।

अनुरोध में 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');
    }
})();

पेज की plain text सामग्री को स्ट्रिंग के रूप में लौटाता है। नीचे दिया गया उदाहरण देखें।

{
    "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...

मार्कडाउन

Markdown फ़ॉर्मेट में पेज सामग्री निकालने के लिए, पूरी तरह से स्थिर Markdown पेज सबसे अच्छा काम करते हैं, Web Unlocker API सामग्री को Markdown फ़ॉर्मेट में लौटाएगा, जिससे यह अधिक पठनीय और संसाधित करने में आसान हो जाती है।

अनुरोध में 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');
    }
})();

Markdown फ़ॉर्मेट में टेक्स्ट सामग्री लौटाता है।

{
    "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)"
}

Markdown फ़ाइल सहेजने के बाद की उदाहरण सामग्री:

# 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 पर सेट किया जाता है, तो आप 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 प्रकार के सभी नेटवर्क अनुरोधों को कैप्चर किया जाता है। फिर नेटवर्क अनुरोध डेटा को एस्केप किए गए JSON स्ट्रिंग प्रारूप में वापस कर दिया जाता है। इस प्रतिक्रिया डेटा में URL, अनुरोध विधि, प्रतिक्रिया स्थिति कोड, हेडर, प्रतिक्रिया बॉडी आदि शामिल हैं।

यदि अनुरोध या प्रतिक्रिया बॉडी में बाइनरी सामग्री है, अत्यधिक बड़ी प्रतिक्रिया बॉडी है, या गैर-पाठ डेटा है, तो मूल सामग्री सीधे वापस नहीं की जाएगी। इसके बजाय, इसे प्लेसहोल्डर स्ट्रिंग [Preview not available ...] के साथ चिह्नित किया जाता है। आप input.jsRender.response.options पैरामीटर का उपयोग करके URL, अनुरोध विधि और स्थिति कोड शर्तों के आधार पर परिणामों को फ़िल्टर कर सकते हैं।

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=&region=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": "0102b37aa413a15dcf9191a3f676ab4b78d5ba03a6d109c921ad21a607e80d7a40dbc340eb8c009458e52488a06a1b874047a91b63eb21ce08d01175dca60742a8bdf12f766710e93ed82ca68be07bf95a053639c5cedca212d37246317d611b65",
      "x-tt-trace-id": "00-250717035100C13E2314287BF101E7D9-729F56051B790290-00",
      "x-tt-trace-tag": "id=16;cdn-cache=hit;type=static"
    },
    "responseBody": {
      "data": "omitted"
    },
    "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 () => {
    // Configuration
    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 || '';
 
        // Save and return result
        fs.writeFileSync('response.json', content, 'utf8');
        console.log('✅ Success! Content saved as response.json');
 
        returnJSON.parse(content);
 
    } catch (error) {
        console.error('❌ Error:', error.message);
        throw error;
    }
})()

यहाँ कुछ उदाहरण हैं:

ईमेल

मानक-फ़ॉर्मेट ईमेल पते निकालने के लिए CSS सेलेक्टर और नियमित अभिव्यक्तियों का उपयोग करें, जैसे example@example.com।

{
    "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\"]}"
}
 
ऑडियो

source तत्वों के भीतर audio टैग्स से ऑडियो स्रोत निकालें। केवल src विशेषता लौटाएँ।

उदाहरण:outputs=audios

{
    "code": 200,
    "data": "{\"audios\":[\"https://example.com/audio.mp3\"]}"
}
 
वीडियो

source तत्वों के भीतर video टैग्स से वीडियो स्रोत निकालें। केवल 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\"]}"
}
 
पैरामीटर स्पष्टीकरण

menu टैग के भीतर li एलिमेंट से मेन्यू आइटम निकालें।

उदाहरण:outputs=menus

{
    "code": 200,
    "data": "{\"links\":[ \"Coffee\", \"Tea\", \"Milk\" ]}"
}
 
हैशटैग

सामान्य हैशटैग पैटर्न से मिलान करने के लिए नियमित अभिव्यक्तियों का उपयोग करके हैशटैग फ़ॉर्मेट निकालें, जैसे #example।

उदाहरण:outputs = hashtags

{
    "code": 200,
    "data": "{\"hashtags\":[\"#docsearch\",\"#search\"]}"
}
 
मेटाडेटा

HTML के meta टैग्स से मेटा जानकारी निकालें head खंड में, 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, Agent Browser\"]}"
}
 
तालिकाएँ

table एलिमेंट से डेटा निकालें और तालिका डेटा को 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 के link खंड में स्थित तत्व से फ़ेविकॉन URL निकालें head ।

उदाहरण: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": [
          // Optional, URL pattern-based blocking
          "*.analytics.com/*",
          "*/ads/*"
        ]
      }
    }
  }
}

संपूर्ण संसाधन प्रकार संदर्भ:

संसाधन प्रकारविवरणप्रभाव
Documentमुख्य दस्तावेज़ और iframesमुख्य पेज सामग्री
StylesheetCSS फ़ाइलेंपेज स्टाइलिंग और लेआउट
Imageछवियाँ और आइकनदृश्य सामग्री
Mediaऑडियो और वीडियो संसाधनमल्टीमीडिया सामग्री
Fontवेब फ़ॉन्टटेक्स्ट रेंडरिंग
ScriptJavaScript फ़ाइलेंपेज कार्यक्षमता
TextTrackवीडियो सबटाइटल और कैप्शनमीडिया एक्सेसिबिलिटी
XHRXMLHttpRequest कॉललीगेसी async अनुरोध
Fetchफ़ेच API अनुरोधआधुनिक async अनुरोध
Prefetchप्रीफ़ेच किए गए संसाधनप्रदर्शन अनुकूलन
EventSourceसर्वर-सेंट इवेंटरीयल-टाइम अपडेट
WebSocketवेबसॉकेट कनेक्शनद्विदिशात्मक संचार
Manifestवेब ऐप मेनिफ़ेस्टPWA कॉन्फ़िगरेशन
SignedExchangeहस्ताक्षरित HTTP एक्सचेंजसामग्री प्रामाणिकता
PingPing अनुरोधएनालिटिक्स और ट्रैकिंग
CSPViolationReportCSP उल्लंघन रिपोर्टसुरक्षा निगरानी
PreflightCORS preflight अनुरोधक्रॉस-ओरिजिन सुरक्षा
Otherअवर्गीकृत संसाधनविविध

उपयोग उदाहरण:

{
  "actor": "unlocker.webunlocker",
  "proxy": {
    "country": "ANY",
    "url": ""
  },
  "input": {
    "url": "string",
    "jsRender": {
      "enabled": true,
      "block": {
        "resources": [
          "Image",
          "Font",
          "Stylesheet",
          "Script",
          "Media",
          "Ping",
          "Prefetch"
        ]
      }
    }
  }
}

संसाधन ब्लॉकिंग के लिए सर्वोत्तम प्रथाएँ:

  1. प्रदर्शन अनुकूलन

    • संसाधन ब्लॉकिंग का बुद्धिमानी से उपयोग करें, तेज़ लोडिंग के लिए गैर-आवश्यक संसाधनों को ब्लॉक करें
    • कम नेटवर्क उपयोग के लिए Prefetch और Ping को ब्लॉक करने पर विचार करें
    • Document और महत्वपूर्ण Script संसाधनों को अवरुद्ध रखें
  2. बैंडविड्थ प्रबंधन

    • बैंडविड्थ-गहन पेजों के लिए Image और Media को ब्लॉक करें
    • इसके बजाय सिस्टम फ़ॉन्ट का उपयोग करने के लिए Font को ब्लॉक करने पर विचार करें
  3. स्थिरता वृद्धि

    • अनुरोध पुनः प्रयास तंत्र लागू करें
    • त्रुटि हैंडलिंग लॉजिक जोड़ें
    • निश्चित के बजाय waitFor का उपयोग करें wait
  4. संसाधन दक्षता

    • मांग पर संसाधन लोड करें
    • अनावश्यक कनेक्शन तुरंत बंद करें

नोट: संसाधन प्रकार स्ट्रिंग केस-संवेदनशील हैं। संदर्भ तालिका में दिखाए अनुसार सटीक मिलान का उपयोग करें।