कस्टम फिंगरप्रिंट
परिचय
ब्राउज़र फिंगरप्रिंटिंग आपके ब्राउज़र और डिवाइस कॉन्फ़िगरेशन जानकारी का उपयोग करके एक लगभग अद्वितीय “डिजिटल फिंगरप्रिंट” बनाती है, जिसका उपयोग कुकीज़ के बिना भी आपकी ऑनलाइन गतिविधियों को ट्रैक करने के लिए किया जा सकता है। अच्छी खबर यह है कि स्क्रैपिंग ब्राउज़र में फिंगरप्रिंट कॉन्फ़िगरेशन वैकल्पिक है। हम ब्राउज़र फिंगरप्रिंट्स के लिए गहन कस्टमाइज़ेशन क्षमताएँ प्रदान करते हैं, जैसे कि ब्राउज़र यूज़र एजेंट, टाइम ज़ोन, भाषा और स्क्रीन रिज़ॉल्यूशन जैसे कोर पैरामीटर। कस्टम स्टार्टअप पैरामीटर के माध्यम से कार्यक्षमता का विस्तार किया जा सकता है। यह मल्टी-अकाउंट प्रबंधन, डेटा संग्रह और गोपनीयता संरक्षण जैसे परिदृश्यों के लिए उपयुक्त है, जो Scrapeless के स्व-निर्मित Chromium ब्राउज़र का उपयोग करके डिटेक्शन से पूरी तरह बचता है। डिफ़ॉल्ट रूप से, हमारी स्क्रैपिंग ब्राउज़र सेवा का उपयोग करने पर प्रत्येक सत्र के लिए एक यादृच्छिक फिंगरप्रिंट उत्पन्न होगा।
मुख्य क्षमताएँ और सीमाएँ
User-Agent नियंत्रण
- क्षमता: HTTP अनुरोध हेडर में User-Agent स्ट्रिंग के कस्टमाइज़ेशन का समर्थन करता है, जिससे ब्राउज़र इंजन संस्करण और ऑपरेटिंग सिस्टम प्रकार को परिभाषित किया जा सकता है।
- सीमा: वर्तमान में रेंडरिंग इंजन विवरण (जैसे, WebGL रेंडरिंग सुविधाएँ) को संशोधित करने में असमर्थ।
स्क्रीन रिज़ॉल्यूशन मैपिंग
- क्षमता:
screen.widthऔरscreen.heightके रिटर्न वैल्यू के कस्टमाइज़ेशन का समर्थन करता है ताकि बुनियादी डिवाइस स्क्रीन आकारों का अनुकरण किया जा सके (भौतिक पहलू अनुपात का पालन करना आवश्यक है)। - सीमा: वर्तमान में डिवाइस पिक्सेल अनुपात (DPR) या रेटिना स्क्रीन विशेषताओं को फेक करने में असमर्थ।
प्लेटफ़ॉर्म एट्रिब्यूट लॉकिंग
- क्षमता:
navigator.platformके लिए एक निश्चित रिटर्न वैल्यू सेट करने की अनुमति देता है (केवल Windows/macOS/Linux समर्थित), जो ब्राउज़र फीचर डिटेक्शन लॉजिक को प्रभावित करता है। - सीमा: वर्तमान में ऑपरेटिंग सिस्टम संस्करण संख्या या हार्डवेयर आर्किटेक्चर जानकारी को संशोधित करने में असमर्थ।
अन्य सीमाएँ:
यह सुविधा केवल ब्राउज़र द्वारा मूल रूप से उजागर किए गए मानकीकृत पैरामीटर के सीमित समायोजन का समर्थन करती है। इसमें हार्डवेयर-स्तरीय फिंगरप्रिंटिंग या उन्नत व्यवहार मास्किंग शामिल नहीं है।
अनुप्रयोग परिदृश्य
- बुनियादी मल्टी-अकाउंट आइसोलेशन: 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 टाइम ज़ोन डेटाबेस प्रारूप के अनुरूप एक टाइम ज़ोन पहचानकर्ता (जैसे, “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, आदि, और जानें), कृपया ध्यान दें कि निम्नलिखित 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
platform
प्रकार: enum
विवरण: JavaScript navigator.platform प्रॉपर्टी के रिटर्न मान को निर्दिष्ट करता है, जो रनटाइम वातावरण के ऑपरेटिंग सिस्टम प्रकार को दर्शाता है। यह पैरामीटर फीचर डिटेक्शन और सिस्टम-संबंधित कार्यों के सक्षम करने के निर्णय के लिए उपयोग किया जाएगा।
स्वीकार्य उदाहरण मान:
| मान | विवरण |
|---|---|
| ”Windows” | Windows ऑपरेटिंग सिस्टम, डिफ़ॉल्ट मान |
| ”macOS” | macOS ऑपरेटिंग सिस्टम |
| ”Linux” | Linux ऑपरेटिंग सिस्टम |
screen
प्रकार: object
विवरण: ब्राउज़र द्वारा रिपोर्ट किए गए डिस्प्ले डिवाइस के भौतिक विशेषता पैरामीटर को परिभाषित करता है, जो सीधे JavaScript window.screen ऑब्जेक्ट पर मैप होता है।
screen.width: भौतिक स्क्रीन चौड़ाई (पिक्सेल), मीडिया क्वेरी और रेस्पॉन्सिव लेआउट को प्रभावित करती है, न्यूनतम मान 640। screen.height: भौतिक स्क्रीन ऊँचाई (पिक्सेल), चौड़ाई के साथ मिलकर डिवाइस रिज़ॉल्यूशन विशेषताओं को निर्धारित करती है, न्यूनतम मान 480।
उदाहरण मान:
| width | height |
|---|---|
| 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
विवरण: कमांड-लाइन स्विच के साथ ब्राउज़र चलाएँ, और जानने के लिए यहाँ क्लिक करें, कृपया ध्यान दें कि निम्नलिखित 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();
})();नैतिकता संबंधी बयान
हम जिम्मेदार फिंगरप्रिंट कस्टमाइज़ेशन की वकालत करते हैं:
- केवल कानूनी रूप से अधिकृत परिदृश्यों के लिए (जैसे, एंटरप्राइज़ डेटा अनुपालन संग्रह, आंतरिक जोखिम नियंत्रण परीक्षण)।
- ऑनलाइन धोखाधड़ी में संलग्न होने या उपयोगकर्ता गोपनीयता का उल्लंघन करने के लिए जाली फिंगरप्रिंट का उपयोग करना निषिद्ध है।