कस्टम फ़िंगरप्रिंट
परिचय
ब्राउज़र फ़िंगरप्रिंटिंग आपके ब्राउज़र और डिवाइस कॉन्फ़िगरेशन जानकारी का उपयोग करके एक लगभग अद्वितीय “डिजिटल फ़िंगरप्रिंट” बनाती है, जिसका उपयोग कुकीज़ के बिना भी आपकी ऑनलाइन गतिविधि को ट्रैक करने के लिए किया जा सकता है। अच्छी बात यह है कि स्क्रैपिंग ब्राउज़र में फ़िंगरप्रिंट कॉन्फ़िगरेशन वैकल्पिक है। हम ब्राउज़र फ़िंगरप्रिंट के लिए गहन अनुकूलन क्षमताएं प्रदान करते हैं, जैसे कि ब्राउज़र यूज़र-एजेंट, समय क्षेत्र, भाषा और स्क्रीन रिज़ॉल्यूशन जैसे मुख्य पैरामीटर। कार्यक्षमता को कस्टम स्टार्टअप पैरामीटर के माध्यम से बढ़ाया जा सकता है। यह मल्टी-अकाउंट प्रबंधन, डेटा संग्रह और गोपनीयता सुरक्षा जैसे परिदृश्यों के लिए उपयुक्त है, जिसमें स्क्रैपलेस के स्वयं-निर्मित क्रोमियम ब्राउज़र का उपयोग करके पहचान से पूरी तरह बचा जा सकता है। डिफ़ॉल्ट रूप से, हमारी स्क्रैपिंग ब्राउज़र सेवा का उपयोग करने पर प्रत्येक सत्र के लिए एक यादृच्छिक फ़िंगरप्रिंट जेनरेट होगा।
मुख्य क्षमताएं और सीमाएं
यूज़र-एजेंट नियंत्रण
- क्षमता: HTTP अनुरोध हेडर में यूज़र-एजेंट स्ट्रिंग के अनुकूलन का समर्थन करता है, जिससे ब्राउज़र इंजन संस्करण और ऑपरेटिंग सिस्टम प्रकार को परिभाषित किया जा सकता है।
- सीमा: वर्तमान में रेंडरिंग इंजन विवरण (जैसे, WebGL रेंडरिंग सुविधाएँ) को संशोधित करने में असमर्थ है।
स्क्रीन रिज़ॉल्यूशन मैपिंग
- क्षमता: बुनियादी डिवाइस स्क्रीन आकार (भौतिक पहलू अनुपात के अनुरूप होना चाहिए) का अनुकरण करने के लिए
screen.widthऔरscreen.heightके वापसी मानों के अनुकूलन का समर्थन करता है। - सीमा: वर्तमान में डिवाइस पिक्सेल अनुपात (DPR) या रेटिना स्क्रीन विशेषताओं को नकली करने में असमर्थ है।
प्लेटफ़ॉर्म विशेषता लॉकिंग
- क्षमता:
navigator.platformके लिए एक निश्चित वापसी मान सेट करने की अनुमति देता है (केवल Windows/macOS/Linux समर्थित), जो ब्राउज़र सुविधा पहचान तर्क को प्रभावित करता है। - सीमा: वर्तमान में ऑपरेटिंग सिस्टम संस्करण संख्या या हार्डवेयर आर्किटेक्चर जानकारी को संशोधित करने में असमर्थ है।
अन्य सीमाएं:
यह सुविधा केवल ब्राउज़र द्वारा स्वाभाविक रूप से उजागर किए गए मानकीकृत मापदंडों में सीमित समायोजन का समर्थन करती है। इसमें हार्डवेयर-स्तर की फ़िंगरप्रिंटिंग या उन्नत व्यवहारिक मास्किंग शामिल नहीं है।
अनुप्रयोग परिदृश्य
- बुनियादी मल्टी-अकाउंट पृथक्करण: यूज़र-एजेंट और स्क्रीन रिज़ॉल्यूशन को अलग करके सरल खाता संबद्धता पहचान से बचें।
- लाइटवेट डेटा संग्रह: लक्ष्य वेबसाइट की बुनियादी एंटी-स्क्रैपिंग रणनीतियों (जैसे, यूज़र-एजेंट ब्लैकलिस्ट) को बायपास करने के लिए एक मुख्यधारा के ब्राउज़र वातावरण (विंडोज + क्रोम) का अनुकरण करें।
- संगतता परीक्षण: विभिन्न ऑपरेटिंग सिस्टम (विंडोज/macOS) और स्क्रीन आकार के तहत वेबसाइट के बुनियादी रेंडरिंग तर्क को सत्यापित करें।
संचालन मार्गदर्शिका
फ़िंगरप्रिंट पैरामीटर विवरण
| पैरामीटर नाम | प्रकार | विवरण |
|---|---|---|
| userAgent | string | ब्राउज़र के HTTP अनुरोध हेडर में यूज़र-एजेंट स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या और ऑपरेटिंग सिस्टम जैसी मुख्य पहचान जानकारी होती है। वेबसाइटें क्लाइंट वातावरण की पहचान करने के लिए इस मान का उपयोग करती हैं, जिससे सामग्री अनुकूलन और कार्यक्षमता प्रभावित होती है। डिफ़ॉल्ट मान: ब्राउज़र के अनुसार |
| 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 समय क्षेत्र डेटाबेस प्रारूप (उदाहरण के लिए, “Asia/Shanghai”) के अनुरूप एक समय क्षेत्र पहचानकर्ता, जो JavaScript डेट ऑब्जेक्ट्स और Intl.DateTimeFormat आउटपुट के डिफ़ॉल्ट समय क्षेत्र व्यवहार को नियंत्रित करता है, जो समय क्षेत्र फ़िंगरप्रिंट का एक मुख्य घटक है। डिफ़ॉल्ट मान: America/New_York |
| localization.languages | [string] | ब्राउज़र की समर्थित भाषा प्राथमिकता सूची, navigator.languages गुण और HTTP Accept-Language अनुरोध हेडर पर मैप की गई, जो वेबसाइट के सामग्री भाषा चयन तर्क को निर्धारित करती है। डिफ़ॉल्ट मान: “en”, “en-US” |
| args | object | कमांड-लाइन स्विच के साथ ब्राउज़र चलाएं (जैसे, --window-size, --proxy-bypass-list, आदि, अधिक जानें), कृपया ध्यान दें कि निम्नलिखित आर्ग्स समर्थित नहीं हैं: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port |
userAgent
प्रकार: string
विवरण: ब्राउज़र के HTTP अनुरोध हेडर में यूज़र-एजेंट स्ट्रिंग को परिभाषित करता है, जिसमें ब्राउज़र इंजन, संस्करण संख्या और ऑपरेटिंग सिस्टम जैसी मुख्य पहचान जानकारी होती है। वेबसाइटें क्लाइंट वातावरण की पहचान करने के लिए इस मान का उपयोग करती हैं, जिससे सामग्री अनुकूलन और कार्यक्षमता प्रभावित होती है।
उदाहरण मान:
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
platform
प्रकार: enum
विवरण: JavaScript navigator.platform गुण के वापसी मान को निर्दिष्ट करता है, जो रनटाइम वातावरण के ऑपरेटिंग सिस्टम प्रकार को इंगित करता है। इस पैरामीटर का उपयोग सुविधा पहचान और सिस्टम-संबंधित कार्यों के सक्षम होने के निर्णय के लिए किया जाएगा।
उदाहरण स्वीकार्य मान:
| मान | विवरण |
|---|---|
| ”Windows” | विंडोज ऑपरेटिंग सिस्टम, डिफ़ॉल्ट मान |
| ”macOS” | macOS ऑपरेटिंग सिस्टम |
| ”Linux” | लिनक्स ऑपरेटिंग सिस्टम |
screen
प्रकार: object
विवरण: ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषताओं के मापदंडों को परिभाषित करता है, सीधे JavaScript window.screen ऑब्जेक्ट पर मैप किया गया।
screen.width: भौतिक स्क्रीन चौड़ाई (पिक्सेल), मीडिया क्वेरी और रेस्पॉन्सिव लेआउट को प्रभावित करती है, न्यूनतम मान 640। screen.height: भौतिक स्क्रीन ऊंचाई (पिक्सेल), चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताओं को निर्धारित करती है, न्यूनतम मान 480।
उदाहरण मान:
| चौड़ाई | ऊंचाई |
|---|---|
| 1920 | 1080 |
| 1366 | 768 |
| 1280 | 720 |
| 768 | 1280 |
localization
प्रकार: object
विवरण: ब्राउज़र के स्थानीयकरण वातावरण कॉन्फ़िगरेशन को नियंत्रित करता है, जिसमें भाषा, क्षेत्र और समय क्षेत्र पैरामीटर शामिल हैं, जो डिस्प्ले प्रारूप और सामग्री स्थानीयकरण व्यवहार को प्रभावित करते हैं।
localization.basedOnIp: क्या IP के आधार पर स्वचालित रूप से समय क्षेत्र और भाषाएं सेट करनी हैं।
localization.timezone: IANA समय क्षेत्र डेटाबेस प्रारूप के अनुरूप एक समय क्षेत्र पहचानकर्ता, जो JavaScript डेट ऑब्जेक्ट्स और 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
विवरण: कमांड-लाइन स्विच के साथ ब्राउज़र चलाएं, अधिक जानने के लिए क्लिक करें, कृपया ध्यान दें कि निम्नलिखित आर्ग्स समर्थित नहीं हैं: --load-extension, --user-data-dir, --fonts-dir, --remote-debugging-port
उदाहरण मान:
- प्रॉक्सी बायपास:
'--proxy-bypass-list': 'example.com' - विंडोज का आकार सेट करें:
'--window-size': '1280,1024', स्क्रीन फ़िंगरप्रिंट के समान सेट करने की सलाह दी जाती है
उदाहरण कोड
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();
})();नैतिक वक्तव्य
हम जिम्मेदार फ़िंगरप्रिंट अनुकूलन की वकालत करते हैं:
- केवल कानूनी रूप से अधिकृत परिदृश्यों के लिए (जैसे उद्यम डेटा अनुपालन संग्रह, आंतरिक जोखिम नियंत्रण परीक्षण)।
- ऑनलाइन धोखाधड़ी में शामिल होने या उपयोगकर्ता की गोपनीयता का उल्लंघन करने के लिए जाली फ़िंगरप्रिंट का उपयोग करना वर्जित है।