
Playwright परीक्षण और ऑटोमेशन लाइब्रेरी का अज्ञात संस्करण।
<h1 align="center">
🎭 Patchright
</h1>
<p align="center">
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-Apache%202.0-green">
</a>
<a>
<img src="https://img.shields.io/badge/Based%20on-Playwright-goldenrod">
</a>
<a>
<img src="https://img.shields.io/badge/Driver-Patched-blue">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/releases/latest">
<img alt="Patchright Version" src="https://img.shields.io/github/v/release/Kaliiiiiiiiii-Vinyzu/patchright?display_name=release&label=Version">
</a>
<br/>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python">
<img src="https://img.shields.io/badge/Package-Python-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases">
<img alt="Python Downloads" src="https://img.shields.io/pepy/dt/patchright?color=red&label=Python%20Downloads">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs">
<img src="https://img.shields.io/badge/Package-NodeJS-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs/releases">
<img alt="NodeJS Downloads" src="https://img.shields.io/npm/d18m/patchright?color=red&label=NodeJS%20Downloads">
</a>
<a href="https://github.com/DevEnterpriseSoftware/patchright-dotnet">
<img src="https://img.shields.io/badge/Package-.Net-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs/releases">
<img alt=".Net Downloads" src="https://img.shields.io/nuget/dt/Patchright?label=.Net%20Downloads">
</a>
<br/>
<img src="https://img.shields.io/github/actions/workflow/status/Kaliiiiiiiiii-Vinyzu/patchright/patchright_tests.yml?label=Patchright%20Driver%20Tests">
<img src="https://img.shields.io/github/actions/workflow/status/Kaliiiiiiiiii-Vinyzu/patchright-python/patchright_tests.yml?label=Patchright%20Python%20Tests">
<img src="https://img.shields.io/github/actions/workflow/status/DevEnterpriseSoftware/patchright-dotnet/patchright_test.yml?label=Patchright%20.Net%20Tests">
</p>
#### Patchright, Playwright Testing and Automation Framework का एक पैच किया गया और अनडिटेक्टेड संस्करण है। </br> इसे Playwright के ड्रॉप-इन रिप्लेसमेंट के रूप में उपयोग किया जा सकता है।
> [!NOTE]
> यह रिपॉज़िटरी Patchright Driver को समर्पित है। Patchright का उपयोग करने के लिए, [Python Package](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python), [NodeJS Package](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs) या _community-driven_ [.Net Package](https://github.com/DevEnterpriseSoftware/patchright-dotnet/) देखें
> [!IMPORTANT]
> Patchright केवल CHROMIUM आधारित ब्राउज़रों को पैच करता है। Firefox और Webkit समर्थित नहीं हैं।
---
<details open id="sponsors">
<summary><h3>प्रायोजक</h1></summary>
<sup>इस प्रोजेक्ट को स्पॉन्सर करना चाहते हैं? Discord पर [@vinyzu](https://discordapp.com/users/935224495126487150) से संपर्क करें!</sup>
[<img width="60%" alt="NodeMaven Banner" src="https://assets.kitploit.com/production/public/readmes/41476/8409e9fd4ecade7fa018f576c77d6f51fb342f311f9e8e2b49984de007b5a605/fc71d82e04f5dc303d21f905310e811885d8a6a57ddffe892b4164bf12547371-display-v1.webp" />](https://go.nodemaven.com/Vinyzuoctober)
</br>
#### [NodeMaven](https://go.nodemaven.com/Vinyzuoctober): उच्च गुणवत्ता वाले IPs के साथ Web Scraping और Automation के लिए आपका कुशल प्रॉक्सी प्रदाता।
[NodeMaven](https://go.nodemaven.com/Vinyzuoctober) क्यों?
🎯 ZIP टार्गेटिंग
</br>
✅ 99.9% अपटाइम
</br>
🔍 IP फ़िल्टरिंग: प्रॉक्सी का फ्रॉड स्कोर <97% होने की गारंटी है
</br>
🔰 KYC की आवश्यकता नहीं
</br>
🎉 अनोखे मुफ़्त टूल्स: Proxy Bandwidth Checker, Meta Tag Checker, IP Lookup और अन्य!
Patchright उपयोगकर्ताओं के लिए **विशेष कोड**:
</br>
🔥 **PATCHRIGHT35** - Mobile और Residential Proxies पर **35% छूट**
</br>
🔥 **PATCHRIGHT40** - ISP (Static) Proxies पर **40% छूट**
<sup>[NodeMaven](https://go.nodemaven.com/Vinyzuoctober) के साथ गुणवत्ता और स्थिरता चुनें।</sup>
</br>
<sup>अधिक वेब स्क्रैपिंग और ऑटोमेशन समाधानों के लिए Nodemaven का नया GitHub देखें - https://github.com/nodemaven</sup>
---
[<img height="100" alt="swiftproxy banner" src="https://assets.kitploit.com/production/public/readmes/41476/71326e65aa66112fe5c3cd5a61951b775d58850b93eaaf166fd77930681f5174.png" />](https://www.swiftproxy.net/?ref=Vinyzu)
#### [Swiftproxy](https://www.swiftproxy.net/?ref=Vinyzu): स्केलेबल डेटा संग्रह के लिए उच्च-प्रदर्शन आवासीय प्रॉक्सी
उन डेवलपर्स के लिए बनाया गया जिन्हें **विश्वसनीय**, एंटी-डिटेक्शन प्रॉक्सी इंफ्रास्ट्रक्चर की आवश्यकता है। [Swiftproxy](https://www.swiftproxy.net/?ref=Vinyzu) **स्थिर कनेक्शन**, **उच्च सफलता दर**, और **बड़े पैमाने पर स्क्रैपिंग और ऑटोमेशन** के लिए लचीला नियंत्रण प्रदान करता है।
- 🌍 नैतिक रूप से प्राप्त आवासीय IPs के साथ 195+ स्थान
- 🔄 सटीक जियो-टार्गेटिंग के साथ **रोटेटिंग** और **स्टिकी सेशन**
- ⚡ **एंटी-बैन** और **उच्च सफलता दर** के लिए अनुकूलित
- 🔌 HTTP / HTTPS / SOCKS5 समर्थन
- 🧪 परीक्षण के लिए **निःशुल्क 500MB ट्रायल**
- 💸 Patchright उपयोगकर्ताओं के लिए **विशेष छूट** कोड: **PROXY90 - 10%**
<sup> सर्वोत्तम: वेब स्क्रैपिंग, ऑटोमेशन, मल्टी-अकाउंटिंग, और बड़े पैमाने पर डेटा निष्कर्षण के लिए </sup>
---
[<img height="90" alt="rapidproxy banner" src="https://assets.kitploit.com/production/public/readmes/41476/2c138417cf7695cb48943327f3d6d9036986882c2a4ffe5e9172f07386a9f229.png" />](https://www.rapidproxy.io/?ref=Vinyzu)
#### [RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu) बड़े पैमाने पर डेटा संचालन के लिए निर्मित एक स्थिर और उच्च-प्रदर्शन प्रॉक्सी नेटवर्क प्रदान करता है।
[RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu) प्रदान करता है:
- 🌍 90M+ आवासीय IPs (200+ स्थान)
- 🔄 **रोटेटिंग आवासीय प्रॉक्सी** — **$0.65/GB** से (समाप्त न होने वाला ट्रैफ़िक)
- 🧩 **स्टैटिक आवासीय IPs** — **$5/IP** (30 दिन, असीमित ट्रैफ़िक)
- 🎯 सटीक जियो-टार्गेटिंग
- ⚡ **निःशुल्क ट्रायल उपलब्ध** — जोखिम-मुक्त प्रॉक्सी प्रदर्शन का परीक्षण करें
- स्क्रैपिंग, ऑटोमेशन, और उच्च-प्रदर्शन डेटा वर्कफ़्लो के लिए निर्मित।
- 🔥 विशेष ऑफ़र: **10% छूट** पाने के लिए कोड **RAPID10** का उपयोग करें
<sup> तेज़ी से शुरू करें। वैश्विक स्तर पर स्केल करें। [RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu) के साथ स्थिर रहें। </sup>
---
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/41476/f3ac5dd3dd1ac541342eeda194f605fe1e28f9b044c0a90867b6db914c4a1b48/ad967b2ca510d337e9c8e72d654869c8fc75b08b088e358e074a6bbb003e6639-display-v1.webp" width="56" alt="Scrappey">
### [Scrappey](https://scrappey.com?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme) द्वारा प्रायोजित
</div>
ब्राउज़र को डिटेक्शन से बचाना एक समस्या है। कुछ मिलियन अनुरोधों में प्रॉक्सी को रोटेट करते रहना, फिंगरप्रिंट को अद्यतित रखना और सेशन को जीवित रखना एक अलग समस्या है। **Scrappey** दूसरी समस्या को संभालता है: एक एंडपॉइंट, हल किए गए पेज वापस।
- **Clearcote** — हमारा अपना पैच किया गया Chromium, जिसे इन-हाउस बनाए रखा जाता है, कोई स्टॉक बिल्ड नहीं
- **एक एंडपॉइंट के पीछे कई इंजन** — एक स्टैक पर ब्लॉक होने पर, दूसरे पर रूट किया जाता है
- API के माध्यम से **क्लिक करें, टाइप करें, प्रतीक्षा करें और स्क्रॉल करें** — एक वास्तविक सेशन, फ़ेच प्रॉक्सी नहीं
- **आवासीय और डेटासेंटर प्रॉक्सी** शामिल, या अपनी लाएँ
- **प्रति अनुरोध**, कोई मासिक न्यूनतम नहीं
```bash
curl -X POST "https://publisher.scrappey.com/api/v1?key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"cmd": "request.get", "url": "https://example.com"}'
```
कोड `PATCHRIGHT` के साथ 10% छूट प्राप्त करें
[दस्तावेज़ीकरण](https://scrappey.com/docs?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme) · [Discord](https://scrappey.com/discord?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme) · [API कुंजी प्राप्त करें](https://scrappey.com?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme)
---
[<img height="120" alt="ProxyLane Banner" src="https://assets.kitploit.com/production/public/readmes/41476/ed95563a028e0c1cefb4f5dccc8f7b69653f4c3fb7d5c4b5099b4cd5718714b7/7afb4fb03926a17d778280ff8bc7b2f62f5206d212d2b7525ea6ee90ae8ed0d3-display-v1.webp" />](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme)
</br>
#### [ProxyLane](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme): रेज़िडेंशियल प्रॉक्सी जो प्रत्येक Patchright प्रोफ़ाइल को सुसंगत रखते हैं।
रिपोर्ट किए गए टाइमज़ोन को अपने प्रॉक्सी से मिलान करने के लिए, प्रत्येक प्रोफ़ाइल को एक शहर से पिन किया गया अपना स्टिकी IP दें और वही टाइमज़ोन सेट करें:
```py
context = playwright.chromium.launch_persistent_context(
user_data_dir="...", channel="chrome", headless=False, no_viewport=True,
proxy={"server": "http://us.gw.proxylane.dev:10000",
"username": "USER_c_US_city_Chicago_s_profile1", # one sticky IP per profile
"password": "PASS"},
timezone_id="America/Chicago", locale="en-US", # match the proxy city
)
```
<sup>सुझाव: `--webrtc-ip-handling-policy=disable_non_proxied_udp` सेट करें, अन्यथा [WebRTC आपका असली IP उजागर कर देता है](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/issues/47)।</sup>
:earth_africa: 195 देशों में 28M रेज़िडेंशियल IP, शहर, ZIP और ASN टारगेटिंग
</br>
:stopwatch: 72h तक स्टिकी सेशन, HTTP और SOCKS5
</br>
:money_with_wings: $2/GB से, ट्रैफ़िक कभी समाप्त नहीं होता
:fire: **PATCHLANE35** - Patchright उपयोगकर्ताओं के लिए **35% छूट**
<sup>स्निपेट पेस्ट करें, अपनी क्रेडेंशियल्स जोड़ें और [ProxyLane](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme_caption) के साथ एक वास्तविक रेज़िडेंशियल IP पर अपना अगला Patchright सेशन चलाएँ।</sup>
</details>
---
## पैचेस
### [Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable) लीक
यह Patchright द्वारा उपयोग किया जाने वाला सबसे बड़ा पैच है। इस लीक से पकड़े जाने से बचने के लिए, patchright (आइसोलेटेड) ExecutionContexts में Javascript निष्पादित करके [Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable) का उपयोग करने से बचता है।
### [Console.enable](https://vanilla.aslushnikov.com/?Console.enable) लीक
Patchright Console API को पूरी तरह अक्षम करके इस लीक को पैच करता है। इसका मतलब है कि Patchright में console कार्यक्षमता काम नहीं करेगी। यदि आपको वास्तव में console की आवश्यकता है, तो आपके लिए Javascript लॉगर्स का उपयोग करना बेहतर हो सकता है, हालाँकि उन्हें भी आसानी से पकड़ा जा सकता है।
### कमांड फ्लैग लीक
Patchright कमांड फ्लैग लीक से पकड़े जाने से बचने के लिए Playwright डिफ़ॉल्ट Args में बदलाव करता है। यह (सबसे महत्वपूर्ण रूप से) इन्हें प्रभावित करता है:
- navigator.webdriver पहचान से बचने के लिए `--disable-blink-features=AutomationControlled` (जोड़ा गया)।
- navigator.webdriver पहचान से बचने के लिए `--enable-automation` (हटाया गया)।
- पॉपअप क्रैश से बचने के लिए `--disable-popup-blocking` (हटाया गया)।
- Stealth Driver के रूप में पहचाने जाने से बचने के लिए `--disable-component-update` (हटाया गया)।
- डिफ़ॉल्ट ऐप्स सक्षम करने के लिए `--disable-default-apps` (हटाया गया)।
- एक्सटेंशन सक्षम करने के लिए `--disable-extensions` (हटाया गया)
### सामान्य लीक
Patchright Playwright कोडबेस में कुछ सामान्य लीक को पैच करता है। इसमें मुख्य रूप से खराब सेटअप और स्पष्ट पहचान बिंदु शामिल हैं।
### क्लोज़्ड शैडो रूट्स
Patchright क्लोज़्ड शैडो रूट्स में तत्वों के साथ इंटरैक्ट करने में सक्षम है। बस सामान्य लोकेटर्स का उपयोग करें और Patchright बाकी काम कर देगा।
<br/>
Patchright अब क्लोज़्ड शैडो रूट्स में XPaths का उपयोग करने में भी सक्षम है।
---
## स्टेल्थ
सही सेटअप के साथ, Patchright को वर्तमान में अज्ञात (undetectable) माना जाता है।
Patchright इन्हें पास करता है:
- [Brotector](https://kaliiiiiiiiii.github.io/brotector/) ✅ ([CDP-Patches](https://github.com/Kaliiiiiiiiii-Vinyzu/CDP-Patches/) के साथ)
- [Cloudflare](https://cloudflare.com/) ✅
- [Kasada](https://www.kasada.io/) ✅
- [Akamai](https://www.akamai.com/products/bot-manager/) ✅
- [Shape/F5](https://www.f5.com/) ✅
- [Bet365](https://bet365.com/) ✅
- [Datadome](https://datadome.co/products/bot-protection/) ✅
- [Fingerprint.com](https://fingerprint.com/products/bot-detection/) ✅
- [CreepJS](https://abrahamjuliot.github.io/creepjs/) ✅
- [Sannysoft](https://bot.sannysoft.com/) ✅
- [Incolumitas](https://bot.incolumitas.com/) ✅
- [IPHey](https://iphey.com/) ✅
- [Browserscan](https://browserscan.net/) ✅
- [Pixelscan](https://pixelscan.net/) ✅
---
## बग्स
#### हालाँकि हमने Patchright को यथासंभव स्थिर बनाने के लिए बहुत समय बिताया है, फिर भी बग्स हो सकते हैं। यदि आपको कोई बग मिलता है, तो कृपया उन्हें [Issues](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/issues) में रिपोर्ट करें।
#### Patchright अब हर रिलीज़ के बाद Playwright Tests के विरुद्ध परीक्षण किया जाता है। [यहाँ](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/actions/workflows/patchright_tests.yml) देखें
> [!WARNING]
> Patchright अधिकांश, लेकिन सभी नहीं, Playwright टेस्ट पास करता है। कुछ बग्स को हल करना असंभव माना जाता है, कुछ बस प्रासंगिक नहीं हैं। बग्स की सूची और उनके स्पष्टीकरण [यहाँ](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/issues/30) देखें।
#### Playwright Tests के आधार पर, हमने निष्कर्ष निकाला कि यह अत्यधिक संभावना नहीं है कि नियमित उपयोग के मामलों में आप इन बग्स से प्रभावित होंगे।
<details>
<summary><b>Init Script Shenanigans</b></summary>
### व्याख्या
[Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable) के बिना InitScripts का उपयोग करने में सक्षम होने के लिए, Patchright HTML अनुरोधों में JavaScript इंजेक्ट करने के लिए Playwright Routes का उपयोग करता है।
### बग
Playwright Routes आपके कोड के अन्य भागों में कुछ बग उत्पन्न कर सकते हैं। Patchright InitScripts ऐसे कोई बग उत्पन्न नहीं करेंगे जो सामान्य Playwright Routes द्वारा उत्पन्न नहीं होंगे। </br> यदि आप इनमें से किसी भी बग को ठीक करवाना चाहते हैं, तो आपको Playwright टीम से संपर्क करना होगा।
### लीक
Patchright InitScripts को Timing Attacks द्वारा पहचाना जा सकता है। हालाँकि, वर्तमान में कोई भी antibot इस प्रकार के Timing Attack की जाँच नहीं करता है और संभवतः काफी समय तक नहीं करेगा। </br> हम इन्हें पहचान का बड़ा जोखिम नहीं मानते हैं।
</details>
---
### TODO
- [x] Execution Context (Main/Isolated) चुनने का विकल्प लागू करें।
- [x] ठीक करने योग्य बग ठीक करें।
- [x] Patchright के पैच आसानी से दिखाने के लिए .patch Updater लागू करें।
- [x] नई रिलीज़ पर स्वचालित परीक्षण सेटअप करें।
- [x] .NET पर Patchright लागू करें।
- [ ] Java पर Patchright लागू करें।
---
## विकास
नए Patchright संस्करणों की तैनाती स्वचालित है, लेकिन Playwright कोडबेस में परिवर्तनों के कारण बग उत्पन्न हो सकते हैं। इन बग के समाधान जारी होने में कुछ दिन लग सकते हैं।
---
## हमारे काम का समर्थन करें
यदि आप हमारे काम का समर्थन करना चुनते हैं, तो कृपया Discord पर [@vinyzu](https://discord.com/users/935224495126487150) या [@steve_abcdef](https://discord.com/users/936292409426477066) से संपर्क करें।
---
## कॉपीराइट और लाइसेंस
© [Vinyzu](https://github.com/Vinyzu/)
Patchright [Apache 2.0](https://choosealicense.com/licenses/apache-2.0/) के अंतर्गत लाइसेंस प्राप्त है
कोडबेस के [कुछ भाग](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/blob/10c5a090e9a1dcd2107c253d65b3d8b27d0670a9/driver_patches/framesPatch.ts#L156-L171) [Driverless](https://github.com/kaliiiiiiiiii/Selenium-Driverless) से प्रेरित हैं।
.patch-File Documentation के विचार के लिए [Nick Webson](https://github.com/rebrowser/rebrowser-patches) को धन्यवाद।
---
## अस्वीकरण
यह रिपॉज़िटरी **केवल शैक्षिक उद्देश्यों के लिए** प्रदान की गई है। \
सटीकता, पूर्णता, या किसी भी उद्देश्य के लिए उपयुक्तता के संबंध में कोई वारंटी प्रदान नहीं की जाती है। **अपने जोखिम पर उपयोग करें**—लेखक और अनुरक्षक इस कोड के उपयोग, संशोधन, या वितरण से होने वाले **किसी भी नुकसान**, **कानूनी मुद्दों**, या **वारंटी उल्लंघन** के लिए **कोई दायित्व नहीं** स्वीकार करते हैं।\
**कोई भी दुरुपयोग या कानूनी उल्लंघन पूरी तरह से उपयोगकर्ता की ज़िम्मेदारी है**।
---
## लेखक
#### सक्रिय अनुरक्षक: [Vinyzu](https://github.com/Vinyzu/) </br> सह-अनुरक्षक: [Kaliiiiiiiiii](https://github.com/kaliiiiiiiiii/)