Форум сайта python.su
Здравствуйте.
Есть задача автоматизировать авторизацию в python скрипте
Код скрипта в котом нужно пройти авторизацию.
import getpass import time time.sleep(1) login = input('Please enter your login: ') print('login '+login) time.sleep(1) code = input('Please enter the code you received: ') print('code '+code) time.sleep(1) password = getpass.getpass('Please enter your password: ') print('password '+password) print('Signed in successfully as '+login)
import pexpect from pexpect import popen_spawn import time import sys login = 'nickname' code = '12345' password = 'secret' command = "python auth.py" print(command) child = pexpect.popen_spawn.PopenSpawn(command) child.logfile = sys.stdout.buffer #enter login try: child.expect('Please enter your login: ') except pexpect.exceptions.TIMEOUT: print('Already auth') sys.exit() child.sendline(login) #enter code child.expect('Please enter the code you received: ') child.sendline(code) #enter password child.expect('Please enter your password: ') child.sendline(password) i = child.expect(['Signed in successfully.*',]) if i==0: print('success Signed')
python auth.py
Please enter your login: nickname
login nickname
Please enter the code you received: 12345
Please enter your password: Traceback (most recent call last):
File “.\check.py”, line 24, in
child.expect('Please enter your password: ‘)
File “C:\Users\Telnet\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pexpect\spawnbase.py”, line 343, in expect
return self.expect_list(compiled_pattern_list,
File “C:\Users\Telnet\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pexpect\spawnbase.py”, line 372, in expect_list
return exp.expect_loop(timeout)
File “C:\Users\Telnet\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pexpect\expect.py”, line 181, in expect_loop
return self.timeout(e)
File “C:\Users\Telnet\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pexpect\expect.py”, line 144, in timeout
raise exc
pexpect.exceptions.TIMEOUT:
searcher: searcher_re:
0: re.compile(b’Please enter your password: ‘)
searcher: searcher_re:
0: re.compile(b’Please enter your password: ')
Офлайн
Авторизоваться получилось лишь после того как я зашел в тот скрипт и руками там исправил getpass на обычный input
Знаю что это не вариант, но как по другому пройти это поле на Windows я так и не придумал
Офлайн
По идее есть более крутой способ: `python3 urscript.py | echo -en “login\ncode\npassword\n”`
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
По идее есть более крутой способ: `python3 urscript.py | echo -en “login\ncode\npassword\n”`
Офлайн