mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-06-10 21:37:13 +00:00
Update flaresolverr_service.py
This commit is contained in:
parent
18ef213d96
commit
4c48632094
@ -287,20 +287,10 @@ def click_verify(driver: WebDriver):
|
||||
time.sleep(2)
|
||||
|
||||
|
||||
def get_correct_window(driver: WebDriver) -> WebDriver:
|
||||
if len(driver.window_handles) > 1:
|
||||
for window_handle in driver.window_handles:
|
||||
driver.switch_to.window(window_handle)
|
||||
current_url = driver.current_url
|
||||
if not current_url.startswith("devtools://devtools"):
|
||||
return driver
|
||||
return driver
|
||||
|
||||
|
||||
def access_page(driver: WebDriver, url: str) -> None:
|
||||
driver.get(url)
|
||||
driver.start_session()
|
||||
driver.start_session() # required to bypass Cloudflare
|
||||
|
||||
|
||||
|
||||
def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> ChallengeResolutionT:
|
||||
@ -315,7 +305,6 @@ def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> Challenge
|
||||
_post_request(req, driver)
|
||||
else:
|
||||
access_page(driver, req.url)
|
||||
driver = get_correct_window(driver)
|
||||
|
||||
# set cookies if required
|
||||
if req.cookies is not None and len(req.cookies) > 0:
|
||||
@ -328,7 +317,6 @@ def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> Challenge
|
||||
_post_request(req, driver)
|
||||
else:
|
||||
access_page(driver, req.url)
|
||||
driver = get_correct_window(driver)
|
||||
|
||||
# wait for the page
|
||||
if utils.get_config_log_html():
|
||||
@ -387,6 +375,10 @@ def _evil_logic(req: V1RequestBase, driver: WebDriver, method: str) -> Challenge
|
||||
logging.debug("Timeout waiting for selector")
|
||||
|
||||
click_verify(driver)
|
||||
driver.execute_script(f'window.open("{req.url}", "_blank");')
|
||||
time.sleep(3)
|
||||
driver.close()
|
||||
driver.switch_to.window(window_name=driver.window_handles[0])
|
||||
|
||||
# update the html (cloudflare reloads the page every 5 s)
|
||||
html_element = driver.find_element(By.TAG_NAME, "html")
|
||||
@ -449,4 +441,3 @@ def _post_request(req: V1RequestBase, driver: WebDriver):
|
||||
</html>"""
|
||||
driver.get("data:text/html;charset=utf-8," + html_content)
|
||||
driver.start_session()
|
||||
driver.start_session() # required to bypass Cloudflare
|
||||
|
Loading…
x
Reference in New Issue
Block a user