JS रेंडर

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

विस्तृत सामग्री के लिए हमारे API प्रलेखन देखें।

बेसिक रिक्वेस्ट स्ट्रक्चर

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": false,
    "headless": false
  },
  "proxy": {
    "country": "US"
  }
}

कोर फीचर्स

जावास्क्रिप्ट रेंडरिंग

जावास्क्रिप्ट रेंडरिंग गतिशील रूप से लोड की गई सामग्री और SPA (सिंगल पेज एप्लिकेशन) को संभालने में सक्षम बनाता है। एक पूर्ण ब्राउज़र वातावरण को सक्षम करता है, जो अधिक जटिल पृष्ठ इंटरैक्शन और रेंडरिंग आवश्यकताओं का समर्थन करता है।

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

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://www.google.com/",
    "js_render": true
  },
  "proxy": {
    "country": "US"
  }
}

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

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

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

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "js_instructions": [
      {
        "wait_for": [
          ".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
      }
    ]
  }
}

यहाँ कुछ सामान्य क्रियाएँ दी गई हैं जिन्हें आप जावास्क्रिप्ट निर्देशों के साथ कर सकते हैं:

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

निर्देशसिंटैक्सविवरणउदाहरण
wait_for[selector, timeout]तत्व के प्रकट होने की प्रतीक्षा करें{"wait_for": [".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

प्रतिक्रिया प्रकार

आप output पैरामीटर द्वारा मानों को फ़िल्टर कर सकते हैं, और परिणाम JSON स्ट्रिंग स्वरूप में वापस कर दिया जाएगा। आप response_type पैरामीटर द्वारा html, markdown जैसे अन्य रिटर्न प्रकार भी निर्दिष्ट कर सकते हैं।

आउटपुट फ़िल्टर

आप outputs पैरामीटर का उपयोग करके JSON-स्वरूपित डेटा को फ़िल्टर कर सकते हैं। एक बार निर्दिष्ट करने के बाद, प्रतिक्रिया JSON स्ट्रिंग स्वरूप में तय हो जाएगी। यह पैरामीटर आपको यह सटीक रूप से परिभाषित करने की अनुमति देता है कि स्क्रैप किए गए HTML से किस प्रकार के डेटा को निकालना है, जिससे केवल आवश्यक जानकारी की कुशल पुनर्प्राप्ति सुनिश्चित होती है। ऐसा करने से, आप प्रसंस्करण समय को कम कर सकते हैं और अपने उपयोग के मामले के लिए सबसे प्रासंगिक डेटा पर ध्यान केंद्रित कर सकते हैं।

यह पैरामीटर फ़िल्टर प्रकारों की एक अल्पविराम से अलग की गई सूची स्वीकार करता है और परिणाम संरचित JSON स्ट्रिंग स्वरूप में देता है। अनुमत फ़िल्टर प्रकारों में शामिल हैं:

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/v1/unlocker/request";
    const token = "API Key";
 
    const headers = {"x-api-token": token, "Content-Type": "application/json"};
 
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true, // must be true
            outputs: "phone_numbers, headings, images, audios, videos, links, menus, hashtags, emails, metadata, tables, favicon" // outputs filter
        },
        proxy: {
            country: "ANY"
        }
    };
 
    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;
    }
})()
 

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

ईमेल

मानक-प्रारूप ईमेल पते, जैसे 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\"}"
}
 

अन्य प्रारूप

outputs पैरामीटर के माध्यम से JSON डेटा को फ़िल्टर करने के अलावा, आप response_type पैरामीटर को नामित करके अधिक रिटर्न मान प्रकार भी निर्दिष्ट कर सकते हैं। वैकल्पिक मान हैं: html | plaintext | markdown | png/jpeg, डिफ़ॉल्ट मान html है। विवरण इस प्रकार हैं:

HTML

किसी पृष्ठ की HTML सामग्री निकालने के लिए उपयोग किया जाता है, जो विशुद्ध रूप से स्थिर पृष्ठों के लिए सबसे अच्छा काम करता है, और सामग्री को एस्केप्ड HTML स्ट्रिंग स्वरूप में लौटाता है।

अनुरोध में response_type=html जोड़ें:

const axios = require('axios');
const fs = require('fs');
 
(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true,
            response_type: "html"
        },
        proxy: {
            country: "ANY"
        }
    };
 
    const response = await axios.post("https://api.scrapeless.com/api/v1/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 टैग या मार्कडाउन स्वरूपण से मुक्त) आवश्यक है। यह सामग्री निष्कर्षण प्रक्रिया को सुव्यवस्थित करता है, जिससे पाठ प्रसंस्करण या विश्लेषण अधिक सुविधाजनक हो जाता है।

अनुरोध में response_type=plaintext जोड़ें:

const axios = require('axios');
const fs = require('fs');
 
(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true,
            response_type: "plaintext"
        },
        proxy: {
            country: "ANY"
        }
    };
 
    const response = await axios.post("https://api.scrapeless.com/api/v1/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...
मार्कडाउन

मार्कडाउन प्रारूप में पृष्ठ सामग्री निकालने के लिए, विशुद्ध रूप से स्थिर मार्कडाउन पृष्ठ सबसे अच्छा काम करते हैं। अनुरोध पैरामीटर में response_type=markdown जोड़कर, यूनिवर्सल स्क्रैपिंग API मार्कडाउन प्रारूप में सामग्री लौटाएगा, जिससे इसे पढ़ना और संसाधित करना आसान हो जाएगा।

अनुरोध में response_type=markdown जोड़ें:

const axios = require('axios');
const fs = require('fs');
 
(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true,
            response_type: "markdown"
        },
        proxy: {
            country: "ANY"
        }
    };
 
    const response = await axios.post("https://api.scrapeless.com/api/v1/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

अनुरोध में response_type=png जोड़कर, आप लक्षित पृष्ठ का स्क्रीनशॉट कैप्चर कर सकते हैं और PNG या JPEG प्रारूप में एक छवि वापस कर सकते हैं। जब प्रतिक्रिया परिणाम PNG या JPEG पर सेट होता है, तो आप यह निर्दिष्ट करने के लिए response_image_full_page=true पैरामीटर का उपयोग कर सकते हैं कि क्या लौटाया गया परिणाम एक पूर्ण-पृष्ठ स्क्रीनशॉट है। response_image_full_page पैरामीटर का डिफ़ॉल्ट मान गलत है।

Add response_type=png to the request के अनुरोध में जोड़ें:

const axios = require('axios');
const fs = require('fs');
 
(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true,
            response_type: "png", // png or jpeg
            response_image_full_page: true
        },
        proxy: {
            country: "ANY"
        }
    };
 
    const response = await axios.post("https://api.scrapeless.com/api/v1/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 में सहेजने के बाद उदाहरण फ़ाइल:

संसाधन नियंत्रण

प्रदर्शन और बैंडविड्थ उपयोग को अनुकूलित करने के लिए संसाधन लोडिंग नियंत्रण प्रणाली।

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "block": {
      "resources": [
        "Image",
        "Font",
        "Stylesheet",
        "Script"
      ],
      "urls": [
        // Optional, URL pattern-based blocking
        "*.analytics.com/*",
        "*/ads/*"
      ]
    }
  }
}

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

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

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

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "block": {
      "resources": [
        "Image",
        "Font",
        "Stylesheet",
        "Script",
        "Media",
        "Ping",
        "Prefetch"
      ]
    }
  }
}

संसाधन अवरोधन के लिए सर्वोत्तम अभ्यास:

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

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

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

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

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

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