Selenium, Python3 - проблема с автоматической авторизацией на etrade.com

Начинающий

Новичок
Пользователь
Сен 26, 2021
6
0
1
Ссылка на сайт: https://us.etrade.com/e/t/user/login
Открываю окно браузера с используя chromedriver
ввожу логин пароль используя метод send_keys
делаю клик по кнопке "Log on" используя метод click
сайт отвечает:​
Sorry! We're having trouble logging you on right now.
Please call 800-ETRADE-1 (800-387-2331) and mention status code 942 and IP:81.221.246.121.

Но если я открою окно браузера, используя chromedriver, но введу логин пароль руками​
сайт вернет мне нормальный ответ - пустит в аккаунт или вернет,​
что аккаунт невалиден.​
Пример ответа сайта, когда ввожу данные руками:
The user ID or password doesn't match our records. Please try again.
Need help logging on? Retrieve your user ID or reset your password.

Python:
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome()
browser.get("https://us.etrade.com/e/t/user/login")
sleep(5)
browser.find_element_by_id('user_orig').send_keys('somelogin')
sleep(3)
browser.find_element_by_name('PASSWORD').send_keys('password')
sleep(1)
browser.find_element_by_name('PASSWORD').send_keys(Keys.ENTER)

Подскажите, в чем может быть причина и как это решить?







Package Version
--------------------------------- ---------
atomicwrites 1.4.0
attrs 21.2.0
backcall 0.2.0
backports.entry-points-selectable 1.1.0
beautifulsoup4 4.10.0
boto 2.49.0
certifi 2021.5.30
cffi 1.14.6
chardet 4.0.0
charset-normalizer 2.0.6
colorama 0.4.4
commonmark 0.9.1
cryptography 3.4.8
cssselect 1.1.0
decorator 5.1.0
distlib 0.3.3
execnet 1.9.0
fasteners 0.16.3
filelock 3.0.12
idna 3.2
iniconfig 1.1.1
ipdb 0.13.9
ipython 7.27.0
jedi 0.18.0
matplotlib-inline 0.1.3
more-itertools 8.10.0
msedge-selenium-tools 3.141.3
nose 1.3.7
packaging 21.0
parameterized 0.8.1
parso 0.8.2
pdfminer.six 20201018
pickleshare 0.7.5
Pillow 8.3.2
pip 21.2.4
platformdirs 2.3.0
pluggy 1.0.0
prompt-toolkit 3.0.20
py 1.10.0
pycparser 2.20
Pygments 2.10.0
PyMySQL 1.0.2
pyOpenSSL 20.0.1
pyotp 2.6.0
pyparsing 2.4.7
pytest 6.2.5
pytest-forked 1.3.0
pytest-html 2.0.1
pytest-metadata 1.11.0
pytest-ordering 0.6
pytest-rerunfailures 10.2
pytest-xdist 2.4.0
PyYAML 5.4.1
requests 2.26.0
rich 10.10.0
sbvirtualdisplay 1.0.0
selenium 3.141.0
seleniumbase 1.66.1
setuptools 58.1.0
setuptools-scm 6.3.2
six 1.16.0
sortedcontainers 2.4.0
soupsieve 2.2.1
toml 0.10.2
tomli 1.2.1
tornado 6.1
traitlets 5.1.0
typing-extensions 3.10.0.2
urllib3 1.26.6
virtualenv 20.8.1
wcwidth 0.2.5
wheel 0.37.0

ОСь: WIN 10
Язык: Python 3.9.7
 

Noor

Пользователь
Пользователь
Ноя 13, 2020
85
19
8
Посмотрите в сторону их api https://apisb.etrade.com/docs/api/account/api-account-v1.html
 

Начинающий

Новичок
Пользователь
Сен 26, 2021
6
0
1
Спасибо за ваш ответ, но мне нужно разобраться в самой проблеме используя эмуляцию + пайтон
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 589
459
83
сайт понимает, что вы лезете через selenium
вот тут есть куча решений, попробуйте может что то вам поможет https://stackoverflow.com/questions...when-you-are-using-selenium-with-chromedriver
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Подскажите, в чем может быть причина и как это решить?
Проблема в том что сайт определяет selenium. Или скорее функции из него такие как send_keys, так как при ручном вводе данных send_keys не используется и проверка проходит даже в selenium`e. Но если сделать ввод логина через send_keys, а потом пароль ввести с клавиатуры, то проверка не проходит.
Чтобы решить проблему можно например изменить файл chromedriver.exe (в hex-редакторе заменить все вхождения cdc_ на любые 4 символа, например zzz_) после чего ваш код пройдет проверку на сайте.
 
Последнее редактирование:

Форум IT Специалистов