@HexUserHex

Selenium пройти простую капчу?

Добрый день,
есть один ресурс который скорее всего установил у себя WAF НО определить что за WAF я так и не смог, вообщем... выскакивает капча которую я пробую обойти следующим способом.

1. Получить html контект
2. Если есть капча то пройти ее 'в ручную' (кстати капча очень простая и мне кажется ее можно попробовать обойти средствами самого селениума...)
3. Сохранить куки в файл
4. При последующем использовании всегда использовать сохраненные куки дабы избежать капчи

#!/usr/bin/env python3
import bs4, time, random, pickle
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
#https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-win64.zip
web_driver = r'geckodriver'


def get_content_selenium(www_url, cookie_save, hide):
  op = webdriver.FirefoxOptions()

  #Run firefox in hiden mode
  if hide:
    op.add_argument('--headless')
  
  driver = webdriver.Firefox(executable_path = web_driver, options = op)
  
  #Load cookies and get page
  if cookie_save:
    cookies = pickle.load(open('cookies_fnac.pkl', 'rb'))
    
    #Sent get request
    driver.get(url=www_url)
    
    #Set cookies
    for cookie in cookies:
      driver.add_cookie(cookie)
    
    #Refresh page
    driver.refresh()
      


  #Bypass captcha and save cookies
  else:
    driver.get(url=www_url)
    
    #Time for bypass captcha
    timeout = random.randint(15, 20)
    
    print('timeout: ', timeout)
    time.sleep(timeout)
  
    pickle.dump(driver.get_cookies() , open('cookies_fnac.pkl', 'wb'))
    

  #Get html source
  html = driver.page_source

  return html



def main():

    result = get_content_selenium('https://fnac.com', 1, 0)
    print(result)

if __name__== "__main__":
      main()


Вначале запускаю, прохожу капчу и сохраняю куки:
result = get_content_selenium('https://fnac.com', 1, 0)


Далее использую уже полученные куки с пройденной капчей для доступа к контенту:
result = get_content_selenium('https://fnac.com', 0, 0)


Но капча также выскакивает...

PS: Если кто сможет максимально красиво решить данную задачу напишите цену вопроса.
  • Вопрос задан
  • 652 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Georg1000
Та же проблема... Решил как то вопрос?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы