कस्टम फिंगरप्रिंट
परिचय
ब्राउज़र फ़िंगरप्रिंटिंग आपके ब्राउज़र और डिवाइस कॉन्फ़िगरेशन जानकारी का उपयोग करके एक लगभग विशिष्ट “डिजिटल फ़िंगरप्रिंट” बनाती है, जिसका उपयोग कुकीज़ के बिना भी आपकी ऑनलाइन गतिविधि को ट्रैक करने के लिए किया जा सकता है। अच्छी खबर यह है कि Agent Browser में फ़िंगरप्रिंट कॉन्फ़िगरेशन वैकल्पिक है। हम ब्राउज़र फ़िंगरप्रिंट के लिए गहरी अनुकूलन क्षमताएँ प्रदान करते हैं, जैसे कि ब्राउज़र user agent, समय क्षेत्र, भाषा, और स्क्रीन रिज़ॉल्यूशन जैसे मुख्य पैरामीटर। कस्टम स्टार्टअप पैरामीटर के माध्यम से कार्यक्षमता को विस्तारित किया जा सकता है। यह मल्टी-अकाउंट प्रबंधन, डेटा संग्रह, और गोपनीयता सुरक्षा जैसे परिदृश्यों के लिए उपयुक्त है, जो Scrapeless के स्वनिर्मित Chromium ब्राउज़र का उपयोग करके पहचान से पूरी तरह बचता है। डिफ़ॉल्ट रूप से, हमारी Agent Browser सेवा का उपयोग करने पर प्रत्येक सत्र के लिए एक यादृच्छिक फ़िंगरप्रिंट उत्पन्न होगा।
मुख्य क्षमताएँ और सीमाएँ
User-Agent नियंत्रण
- क्षमता: HTTP अनुरोध हेडर में User-Agent स्ट्रिंग के अनुकूलन का समर्थन करता है, जिससे ब्राउज़र इंजन संस्करण और ऑपरेटिंग सिस्टम प्रकार को परिभाषित किया जा सकता है।
- सीमा: वर्तमान में रेंडरिंग इंजन विवरण (जैसे WebGL रेंडरिंग विशेषताएँ) को संशोधित करने में असमर्थ।
स्क्रीन रिज़ॉल्यूशन मैपिंग
- क्षमता: बुनियादी डिवाइस स्क्रीन आकारों का अनुकरण करने के लिए
screen.widthऔरscreen.heightके रिटर्न मानों के अनुकूलन का समर्थन करता है (भौतिक aspect ratio के अनुरूप होना चाहिए)। - सीमा: वर्तमान में डिवाइस पिक्सेल अनुपात (DPR) या Retina स्क्रीन विशेषताओं को नकली बनाने में असमर्थ।
प्लेटफ़ॉर्म एट्रिब्यूट लॉकिंग
- क्षमता:
navigator.platformके लिए एक निश्चित वापसी मान सेट करने की अनुमति देता है (केवल विंडोज/मैकओएस/लिनक्स समर्थित), जो ब्राउज़र विशेषता पहचान तर्क को प्रभावित करता है। - सीमा: वर्तमान में ऑपरेटिंग सिस्टम संस्करण संख्या या हार्डवेयर आर्किटेक्चर जानकारी को संशोधित करने में असमर्थ।
अन्य सीमाएँ:
यह सुविधा केवल ब्राउज़र द्वारा मूल रूप से उजागर किए गए मानकीकृत पैरामीटर के सीमित समायोजन का समर्थन करती है। इसमें हार्डवेयर-स्तरीय फ़िंगरप्रिंटिंग या उन्नत व्यवहार मास्किंग शामिल नहीं है।
अनुप्रयोग परिदृश्य
- बुनियादी मल्टी-अकाउंट पृथक्करण: User-Agent और स्क्रीन रिज़ॉल्यूशन को विभेदित करके सरल अकाउंट संबद्धता पहचान से बचें।
- हल्का डेटा संग्रह: लक्षित वेबसाइट की बुनियादी एंटी-स्क्रैपिंग रणनीतियों (जैसे User-Agent ब्लैकलिस्ट) को बायपास करने के लिए एक मुख्यधारा के ब्राउज़र परिवेश (Windows + Chrome) का अनुकरण करें।
- संगतता परीक्षण: विभिन्न ऑपरेटिंग सिस्टम (Windows/macOS) और स्क्रीन आकारों के अंतर्गत वेबसाइट के बुनियादी रेंडरिंग लॉजिक को सत्यापित करें।
संचालन गाइड
फ़िंगरप्रिंट पैरामीटर विवरण
| पैरामीटर नाम | प्रकार | विवरण |
|---|---|---|
| userAgent | string | ब्राउज़र के HTTP अनुरोध हेडर में User-Agent स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या, और ऑपरेटिंग सिस्टम जैसी मुख्य पहचान जानकारी होती है। वेबसाइटें क्लाइंट परिवेश की पहचान करने के लिए इस मान का उपयोग करती हैं, जो सामग्री अनुकूलन और कार्यक्षमता को प्रभावित करता है। डिफ़ॉल्ट मान: ब्राउज़र का अनुसरण करता है |
| platform | enum | JavaScript navigator.platform प्रॉपर्टी का रिटर्न मान निर्दिष्ट करता है, जो रनटाइम परिवेश के ऑपरेटिंग सिस्टम प्रकार को इंगित करता है। वैकल्पिक मान “Windows”, “macOS”, या “Linux” हैं। इस पैरामीटर का उपयोग फ़ीचर डिटेक्शन और सिस्टम-संबंधित कार्यों के सक्षमकरण निर्णय के लिए किया जाएगा। डिफ़ॉल्ट मान: Windows |
| screen | object | ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषता पैरामीटर को परिभाषित करता है, जो सीधे JavaScript window.screen ऑब्जेक्ट से मैप किया जाता है। |
| screen.width | number | भौतिक स्क्रीन चौड़ाई (पिक्सेल), screen.width प्रॉपर्टी से मैप की गई, मीडिया क्वेरी और रिस्पॉन्सिव लेआउट को प्रभावित करती है। डिफ़ॉल्ट मान: यादृच्छिक फ़िंगरप्रिंट का अनुसरण करता है, न्यूनतम मान 640। |
| screen.height | number | भौतिक स्क्रीन ऊँचाई (पिक्सेल), screen.height प्रॉपर्टी से मैप की गई, चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताएँ निर्धारित करती है। डिफ़ॉल्ट मान: यादृच्छिक फ़िंगरप्रिंट का अनुसरण करता है, न्यूनतम मान 480। |
| localization | object | ब्राउज़र के स्थानीयकरण परिवेश कॉन्फ़िगरेशन को नियंत्रित करता है, जिसमें भाषा, क्षेत्र, और समय क्षेत्र पैरामीटर शामिल हैं, जो प्रदर्शन प्रारूप और सामग्री स्थानीयकरण व्यवहार को प्रभावित करते हैं। |
| localization.basedOnIp | boolean | क्या IP के आधार पर समय क्षेत्र और भाषाओं को स्वचालित रूप से सेट करना है। |
| localization.timezone | string | IANA time zone database प्रारूप के अनुरूप एक समय क्षेत्र पहचानकर्ता (जैसे “Asia/Shanghai”), जो JavaScript date ऑब्जेक्ट और Intl.DateTimeFormat आउटपुट के डिफ़ॉल्ट समय क्षेत्र व्यवहार को नियंत्रित करता है, जो समय क्षेत्र फ़िंगरप्रिंट का एक मुख्य घटक है। डिफ़ॉल्ट मान: America/New_York |
| localization.languages | [स्ट्रिंग] | ब्राउज़र की समर्थित भाषा प्राथमिकता सूची, navigator.languages प्रॉपर्टी और HTTP Accept-Language अनुरोध हेडर से मैप की गई, जो वेबसाइट के सामग्री भाषा चयन लॉजिक को निर्धारित करती है। डिफ़ॉल्ट मान: “en”, “en-US” |
| args | object | कमांड-लाइन स्विच के साथ ब्राउज़र चलाएँ (जैसे --window-size, --proxy-bypass-list, आदि, और जानें)। कृपया ध्यान दें कि निम्नलिखित args समर्थित नहीं हैं: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port |
userAgent
प्रकार: string
विवरण: ब्राउज़र के HTTP अनुरोध हेडर में User-Agent स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या, और ऑपरेटिंग सिस्टम जैसी मुख्य पहचान जानकारी होती है। वेबसाइटें क्लाइंट परिवेश की पहचान करने के लिए इस मान का उपयोग करती हैं, जो सामग्री अनुकूलन और कार्यक्षमता को प्रभावित करता है। आप किसी भी userAgent को अनुकूलित कर सकते हैं।
उदाहरण मान:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.83 Safari/537.36
प्लेटफॉर्म
प्रकार: enum
विवरण: JavaScript navigator.platform प्रॉपर्टी का रिटर्न मान निर्दिष्ट करता है, जो रनटाइम परिवेश के ऑपरेटिंग सिस्टम प्रकार को इंगित करता है। इस पैरामीटर का उपयोग फ़ीचर डिटेक्शन और सिस्टम-संबंधित कार्यों के सक्षमकरण निर्णय के लिए किया जाएगा।
स्वीकार्य मानों के उदाहरण:
| मान | वर्णन |
|---|---|
| ”Windows” | Windows ऑपरेटिंग सिस्टम, डिफ़ॉल्ट मान |
| ”macOS” | macOS ऑपरेटिंग सिस्टम |
| ”Linux” | Linux ऑपरेटिंग सिस्टम |
स्क्रीन
प्रकार: object
विवरण: ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषता पैरामीटर को परिभाषित करता है, जो सीधे JavaScript window.screen ऑब्जेक्ट से मैप किया जाता है।
screen.width: भौतिक स्क्रीन चौड़ाई (पिक्सेल), मीडिया क्वेरी और रिस्पॉन्सिव लेआउट को प्रभावित करती है, न्यूनतम मान 640। screen.height: भौतिक स्क्रीन ऊँचाई (पिक्सेल), चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताएँ निर्धारित करती है, न्यूनतम मान 480।
उदाहरण मान:
| width | ऊंचाई |
|---|---|
| 1920 | 1080 |
| 1366 | 768 |
| 1280 | 720 |
| 768 | 1280 |
स्थानीयकरण
प्रकार: object
विवरण: ब्राउज़र के स्थानीयकरण परिवेश कॉन्फ़िगरेशन को नियंत्रित करता है, जिसमें भाषा, क्षेत्र, और समय क्षेत्र पैरामीटर शामिल हैं, जो प्रदर्शन प्रारूप और सामग्री स्थानीयकरण व्यवहार को प्रभावित करते हैं।
localization.basedOnIp: क्या IP के आधार पर समय क्षेत्र और भाषाओं को स्वचालित रूप से सेट करना है।
localization.timezone: IANA time zone database प्रारूप के अनुरूप एक समय क्षेत्र पहचानकर्ता, जो JavaScript date ऑब्जेक्ट और Intl.DateTimeFormat आउटपुट के डिफ़ॉल्ट समय क्षेत्र व्यवहार को नियंत्रित करता है, जो समय क्षेत्र फ़िंगरप्रिंट का एक मुख्य घटक है।
उदाहरण मान:
America/New_YorkAsia/ShanghaiEurope/London
localization.languages: ब्राउज़र की समर्थित भाषा प्राथमिकता सूची, navigator.languages प्रॉपर्टी और HTTP Accept-Language अनुरोध हेडर से मैप की गई, जो वेबसाइट के सामग्री भाषा चयन लॉजिक को निर्धारित करती है।
उदाहरण मान:
["fr-FR", "en-US", "zh-CN"]["en-US", "es-ES", "de-DE"]
संदर्भ: tz डेटाबेस के समय क्षेत्रों की सूची
args
प्रकार: object
विवरण: कमांड-लाइन स्विच के साथ ब्राउज़र चलाएँ, और जानने के लिए क्लिक करें, कृपया ध्यान दें कि निम्नलिखित args समर्थित नहीं हैं: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port
उदाहरण मान:
- प्रॉक्सी बायपास:
'--proxy-bypass-list': 'example.com' - विंडो का आकार सेट करें:
'--window-size': '1280,1024', इसेscreenफ़िंगरप्रिंट के समान सेट करने की अनुशंसा की जाती है
उदाहरण कोड
const { ScrapelessClient } = require('@scrapeless-ai/sdk');
const puppeteer =require('puppeteer-core');
const client = new ScrapelessClient({ apiKey: 'API Key' });
// custom browser fingerprint
const fingerprint = {
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36',
platform: 'Windows',
screen: {
width: 1280, height: 1024
},
localization: {
languages: ['zh-HK', 'en-US', 'en'], timezone: 'Asia/Hong_Kong',
},
args: {
'--proxy-bypass-list': 'example.com',
'--window-size': '1280,1024' // set window size as the same as the screen fingerprint
}
}
// Create browser session and get WebSocket endpoint
const { browserWSEndpoint } = client.browser.create({
sessionName: 'sdk_test',
sessionTTL: 180,
proxyCountry: 'US',
sessionRecording: true,
fingerprint,
});
(async () => {
const browser = await puppeteer.connect({browserWSEndpoint});
const page = await browser.newPage();
await page.goto('https://www.scrapeless.com');
const info = await page.evaluate(() => {
return {
screen: {
width:screen.width,
height:screen.height,
},
userAgent:navigator.userAgent,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
languages:navigator.languages
};
});
console.log(info);
await browser.close();
})();नैतिक वक्तव्य
हम जिम्मेदार फ़िंगरप्रिंट अनुकूलन की वकालत करते हैं:
- केवल कानूनी रूप से अधिकृत परिदृश्यों के लिए (जैसे उद्यम डेटा अनुपालन संग्रह, आंतरिक जोखिम नियंत्रण परीक्षण)।
- नकली फ़िंगरप्रिंट का उपयोग करके ऑनलाइन धोखाधड़ी में संलग्न होना या उपयोगकर्ता की गोपनीयता का उल्लंघन करना निषिद्ध है।