Selenium.webdriver.Chrome replacement with compatibility for Brave, and other Chromium based browsers. Not triggered by CloudFlare/Imperva/hCaptcha and such. NOTE: results may vary due to many factors. No guarantees are given, except for ongoing efforts in understanding detection algorithms.
Project description
Undetected
Undetectable selenium chromedriver.
Warning: The main logic of this project is to patch the ChromeDriver binary to avoid detection by anti-bot services. And this is achieved by modifying the chromedriver binary, just that. So please don't equivocate yourself by thinking that just by installing this package you will be 99.9% undetected, no you won't. If you are being detected you'll need to investigate by yourself what's causing it, it can be the package issue, but 70% of the time it's not, and if you still think its the package issue you can open an issue to explain by details whats going on.
Note: This project is a fork of undetected-chromedriver.
Installation
pip install undetected
Simple Usage
import undetected as uc
driver = uc.Chrome()
driver.get("https://example.com")
driver.quit()
Example Usage with Multi-Processing (doesn't work great on Windows)
import undetected as uc
from undetected.patcher import Patcher
from multiprocessing import Process
def worker(idx: int):
driver = uc.Chrome(user_multi_procs=True)
driver.get("https://example.com")
driver.quit()
if __name__ == "__main__":
Patcher.patch() # patching a unique undetected chromedriver
processes = [Process(target=worker, args=(i,)) for i in range(4)]
for p in processes:
p.start()
for p in processes:
p.join()
Example Usage with Multi-Threading
import undetected as uc
from undetected.patcher import Patcher
import threading
def worker(idx: int):
driver = uc.Chrome(user_multi_procs=True)
driver.get("https://example.com")
driver.quit()
if __name__ == "__main__":
Patcher.patch() # patching a unique undetected chromedriver
threads = [threading.Thread(target=worker, args=(i,)) for i in range(4)]
for t in threads:
t.start()
for t in threads:
t.join()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file undetected-0.0.13.tar.gz.
File metadata
- Download URL: undetected-0.0.13.tar.gz
- Upload date:
- Size: 32.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
702091ae02719b6e07b65a26a7f4c89c91d995fa0dfe9f7730c4ca7035f9b6df
|
|
| MD5 |
a6d7e6068af10a1f432629dc2d8f4e67
|
|
| BLAKE2b-256 |
72081d43c94184ca35d02601ff192f3c9dd0c0e03b2e52eabe530d73028afffc
|
File details
Details for the file undetected-0.0.13-py3-none-any.whl.
File metadata
- Download URL: undetected-0.0.13-py3-none-any.whl
- Upload date:
- Size: 35.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a505ee9301b4480d1be4f346f52675b0915555592c9182fb824964127ea3751b
|
|
| MD5 |
dc7c97c981d8ff4acf0e17d75686ccb9
|
|
| BLAKE2b-256 |
661d8f21f756fb26630bfdae796d7826f91d52fd0eb4d4f74f2c0109f51126f1
|