Как войти в suntrust банковский счет, используя Selenium через Python - PullRequest
1 голос
/ 10 июня 2019

Цель состоит в том, чтобы войти на банковский счет suntrust и собрать информацию о проверке данных транзакции счета.

Я попытался использовать библиотеку запросов и библиотеку селена.В настоящее время я использую селен, чтобы увидеть, где код не работает.

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

LOGIN_URL = 'https://login.onlinebanking.suntrust.com/olb/login'
userID = 'username'
password = 'password'

chrome_path= "path_to_chromedriver"
chrome_options=webdriver.ChromeOptions()
driver=webdriver.Chrome(chrome_path)

driver.get(LOGIN_URL)
time.sleep(5)
driver.get_cookies()
driver.find_element_by_id('userId').send_keys(userID)
driver.find_element_by_id('password').send_keys(password)
driver.find_element_by_class_name("suntrust-sign-on").click()

Программа должна успешно войти в систему пользователя.Однако я получаю сообщение об ошибке: ReasonCode = 6004 .

1 Ответ

1 голос
/ 10 июня 2019

Я немного изменил ваш код и попытался войти в систему следующим образом:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

options = webdriver.ChromeOptions()
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://login.onlinebanking.suntrust.com/olb/login")

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.suntrust-input-text.ng-pristine.ng-valid.ng-touched#userId"))).send_keys("username")
driver.find_element_by_css_selector("input.suntrust-input-text.ng-untouched.ng-pristine.ng-valid#password").send_keys("password")
driver.find_element_by_css_selector("button.suntrust-sign-on.suntrust-button-text>span").click()

Но все еще не смог войти.

Теперь при проверке DOM Tree из SUNTRUST - Вход в систему онлайн-банкинга На странице входа вы найдете следующие теги в теге <body>:

  • <script type="text/javascript" src="dist/runtime.7d6aba6a1596ee0b757c.js"></script>
  • <script type="text/javascript" src="dist/polyfills.65913a8531010587b6fe.js"></script>
  • <script type="text/javascript" src="dist/scripts.46e57c2d57ad1b3d210d.js"></script>
  • <script type="text/javascript" src="dist/vendor.43f2240dc35276d98b10.js"></script>
  • <script type="text/javascript" src="dist/main.5d227767baa37ef78819.js"></script>

Снимок

suntrust

Наличие фразы dist является четким свидетельством того, что сайт защищен Bot Management поставщиком услуг Distil Networks и навигация по ChromeDriver обнаруживается и впоследствии блокируется .


Distil

Согласно статье Distil.it действительно что-то есть ... :

Distil защищает сайты от автоматических ботов, проверяющих поведение сайта, отслеживая поведение сайтов и выявляя закономерности peculiaг на скребки.Когда Distil идентифицирует вредоносного бота на одном сайте, он создает черный профиль поведения, который развертывается для всех его клиентов.Что-то вроде брандмауэра бота, Distil обнаруживает шаблоны и реагирует.

Далее,

"One pattern with **Selenium** was automating the theft of Web content", сказал генеральный директор Distil Рами Эссейд в интервью на прошлой неделе."Even though they can create new bots, we figured out a way to identify Selenium the a tool they're using, so we're blocking Selenium no matter how many times they iterate on that bot. We're doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious".


Ссылка

Вы можете найти пару соответствующих обсуждений в:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...