How to bypass cloudflare browser checking selenium Python
Asked Answered
G

3

10

I am trying to access a site using selenium Python. But the site is checking and checking continuously by cloudflare. No other page is coming.

Check the screenshot here.

enter image description here

I have tried undetected chrome but it is not working at all.

Goldthread answered 17/3, 2022 at 20:6 Comment(0)
C
9

By undetected chrome do you mean undetected chromedriver?:

Anyways, undetected-chromedriver works for me:

Undetected chromedriver

Github: https://github.com/ultrafunkamsterdam/undetected-chromedriver

pip install undetected-chromedriver

Code that gets a cloudflare protected site:

import undetected_chromedriver as uc
driver = uc.Chrome(use_subprocess=True)
driver.get('https://nowsecure.nl')

My POV

enter image description here enter image description here


Quick setup code that logs into your google account:

Github: https://github.com/xtekky/google-login-bypass

import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

#  ---------- EDIT ----------
email = 'email\n' # replace email
password = 'password\n' # replace password
#  ---------- EDIT ----------

driver = uc.Chrome(use_subprocess=True)
wait = WebDriverWait(driver, 20)
url = 'https://accounts.google.com/ServiceLogin?service=accountsettings&continue=https://myaccount.google.com%3Futm_source%3Daccount-marketing-page%26utm_medium%3Dgo-to-account-button'
driver.get(url)


wait.until(EC.visibility_of_element_located((By.NAME, 'identifier'))).send_keys(email)
wait.until(EC.visibility_of_element_located((By.NAME, 'password'))).send_keys(password)
print("You're in!! enjoy")

# [ ---------- paste your code here ---------- ]
Colonist answered 17/3, 2022 at 20:13 Comment(4)
Hi, Thanks, but like I said undetected-chromedriver is not working on me. I have checked again.Goldthread
Check: #56529131 you may find an answer there or blog.m157q.tw/posts/2020/09/11/…Colonist
@Colonist undetected_chromedriver v1 as of today appears vulnerable and we are still working to integrate undetected_chromedriver with Selenium v4.xDetruncate
Thank you! it worked perfectly for me. By adding the uc.Chrome(use_subprocess=True) it start working fine. Also I imported from selenium.webdriver.common.by import By and to find the elements by XPath I used:userTxtBox = self.driver.find_element(By.XPATH,'//*[@id="ctl00_ContentPlaceHolder_UserNameTextBox"]')Powerdive
G
6

https://github.com/seleniumbase/SeleniumBase has undetected-chromedriver mode (--uc / uc=True).

After pip install seleniumbase, a script like this will bypass a site with Cloudflare turnstiles.

from seleniumbase import SB

with SB(uc=True) as sb:
    sb.open("https://nowsecure.nl/#relax")
    sb.sleep(2)
    if not sb.is_text_visible("OH YEAH, you passed!", "h1"):
        sb.get_new_driver(uc=True)
        sb.open("https://nowsecure.nl/#relax")
        sb.sleep(2)
    sb.assert_text("OH YEAH, you passed!", "h1", timeout=4)
    sb.sleep(2)

(Use sb.driver to access the raw driver.)

There's also a simple driver format:

from seleniumbase import Driver
import time

driver = Driver(uc=True)
driver.get("https://nowsecure.nl/#relax")
time.sleep(4)
driver.quit()

It can bypass detection on most sites:

Greige answered 9/8, 2023 at 13:32 Comment(0)
S
1

The simple method is useful:

from selenium import webdriver
import time 

browser = webdriver.Chrome()
browser.get(url)

# sleep to wait pass
time.sleep(3) 

html_source = browser.page_source
print(html_soup)
Sprinkling answered 11/1, 2023 at 7:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.