working patch

This commit is contained in:
ultrafunkamsterdam 2020-09-19 18:22:03 +02:00
parent 17e1f0e584
commit 8baa61990f
2 changed files with 33 additions and 21 deletions

View File

@ -16,7 +16,7 @@ from setuptools import setup
setup( setup(
name="undetected-chromedriver", name="undetected-chromedriver",
version="1.4.0", version="1.4.2",
packages=["undetected_chromedriver"], packages=["undetected_chromedriver"],
install_requires=["selenium",], install_requires=["selenium",],
url="https://github.com/ultrafunkamsterdam/undetected_chromedriver", url="https://github.com/ultrafunkamsterdam/undetected_chromedriver",

View File

@ -49,26 +49,37 @@ class Chrome:
kwargs["options"] = ChromeOptions() kwargs["options"] = ChromeOptions()
instance = object.__new__(_Chrome) instance = object.__new__(_Chrome)
instance.__init__(*args, **kwargs) instance.__init__(*args, **kwargs)
instance.execute_cdp_cmd(
"Page.addScriptToEvaluateOnNewDocument", instance._orig_get = instance.get
{
"source": """ def _get_wrapped(*args, **kwargs):
Object.defineProperty(window, 'navigator', { if instance.execute_script("return navigator.webdriver"):
value: new Proxy(navigator, { instance.execute_cdp_cmd(
has: (target, key) => (key === 'webdriver' ? false : key in target),
get: (target, key) => "Page.addScriptToEvaluateOnNewDocument",
key === 'webdriver' {"source": """
? undefined
: typeof target[key] === 'function' Object.defineProperty(window, 'navigator', {
? target[key].bind(target) value: new Proxy(navigator, {
: target[key] has: (target, key) => (key === 'webdriver' ? false : key in target),
}) get: (target, key) =>
}); key === 'webdriver'
""" ? undefined
+ "console.dir = console.log = function(){};" : typeof target[key] === 'function'
if not enable_console_log else '' ? target[key].bind(target)
}, : target[key]
) })
});
(function () {
}) ();
""" + ("console.log = console.dir = console.error = function(){};" if not enable_console_log else '' ) }
)
return instance._orig_get(*args, **kwargs)
instance.get = _get_wrapped
original_user_agent_string = instance.execute_script( original_user_agent_string = instance.execute_script(
"return navigator.userAgent" "return navigator.userAgent"
) )
@ -92,6 +103,7 @@ class ChromeOptions:
instance.add_argument("start-maximized") instance.add_argument("start-maximized")
instance.add_experimental_option("excludeSwitches", ["enable-automation"]) instance.add_experimental_option("excludeSwitches", ["enable-automation"])
instance.add_experimental_option("useAutomationExtension", False) instance.add_experimental_option("useAutomationExtension", False)
instance.add_argument("--disable-blink-features=AutomationControlled");
logger.info(f"starting undetected_chromedriver.ChromeOptions({args}, {kwargs})") logger.info(f"starting undetected_chromedriver.ChromeOptions({args}, {kwargs})")
return instance return instance