ultrafunkamsterdam /undetected-chromedriver
Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)
★ 12,896⑂ 1,347👁 140⑃ 149● 1,720▤ 0
12,896
stars
+0+0+35
1,347
forks
140
watchers
149
prs
1,720
issues
0
releases
–
discussions
README
undetected_chromedriver
https://github.com/ultrafunkamsterdam/undetected-chromedriver
Optimized Selenium Chromedriver patch which does not trigger anti-bot services like Distill Network / Imperva / DataDome / Botprotect.io
Automatically downloads the driver binary and patches it.
Tested until current chrome beta versions
Works also on Brave Browser and many other Chromium based browsers, but you need to know what you're doing and needs some tweaking.
Python 3.6++
Installation
pip install undetected-chromedriver
or , if you're feeling adventurous, install directly via github
pip install git+https://www.github.com/ultrafunkamsterdam/undetected-chromedriver@master replace @master with @branchname for other branches
- - -
Message for all
I will be putting limits on the issue tracker. It has beeen abused too long.
any good news?
Yes, i've opened Undetected-Discussions which i think will help us better in the long run.
- - -
What this is not
---
THIS PACKAGE DOES NOT, and i repeat DOES NOT hide your IP address, so when running from a datacenter (even smaller ones), chances are large you will not pass! Also, if your ip reputation at home is low, you won't pass!
Running following code from home , and from a datacenter.
python
import undetected_chromedriver as uc
driver = uc.Chrome(headless=True,use_subprocess=False)
driver.get('https://nowsecure.nl')
driver.save_screenshot('nowsecure.png')
3.5.0
- selenium 4.10 caused some issues. 3.5.0 is compatible and has selenium 4.9 or above pinned. I can't support example code here
easy
Literally, this is all you have to do. Settings are included and your browser executable is found automagically. This is also the snippet i
recommend using in case you experience an issue.
python
import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get( 'https://nowsecure.nl' ) my own test test site with max anti-bot protection
more advanced way, including setting profie folder
Literally, this is all you have to do. If a specified folder does not exist, a NEW profile is created. Data dirs which are specified like
this will not be autoremoved on exit.
python
import undetected_chromedriver as uc
options = uc.ChromeOptions()
setting profile
options.user_data_dir = "c:\\temp\\profile"
use specific (older) version
driver = uc.Chrome(
options = options , version_main = 94
) version_main allows to specify your chrome version instead of following chrome global version
driver.get( 'https://nowsecure.nl' ) my own test test site with max anti-bot protection
expert mode, including Devtool/Wire events
Literally, this is all you have to do. You can now listen and subscribe to the low level devtools-protocol. I just recently found out that
is also on planning for future release of the official chromedriver. However i implemented my own for now. Since i n