Скрипт автоматического входа в систему требует входа в систему с несколькими учетными записями, хранящимися в текстовом файле - PullRequest
0 голосов
/ 15 сентября 2018

У меня проблемы с чтением из текстового файла и автоматической записью этой информации для входа на веб-сайт.

До сих пор я написал код, который будет читать из моего текстового файла и записывать первые 2 строкина сайт.

Все мои учетные записи и пароли написаны в этом формате - myusername:mypassword #id, и я хотел бы разделить myusername:mypassword и ввести в соответствующие области без использования #id.

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

Мой код выглядит так

from selenium import webdriver
import getpass

def loginBOT(usr, pas):
    br = webdriver.Firefox()
    br.get("https://web.facebook.com/")

    user = br.find_element_by_name("email")
    user.clear()
    user.send_keys(usr)

    passwd = br.find_element_by_name("pass")
    passwd.clear()
    passwd.send_keys(pas)

    btn = br.find_element_by_css_selector("#u_0_2")
    btn.click()

if __name__ == "__main__":
    file = open("accounts.txt", 'r')
    info = file.readlines()
    file.close()

    loginBOT(info[0],info[1])      

1 Ответ

0 голосов
/ 15 сентября 2018

Если это формат вашего файла:

myusername:mypassword #id
myusername:mypassword #id
myusername:mypassword #id

Тогда вы можете изменить свой код так:

if __name__ == "__main__":
    with open("accounts.txt") as f:
        for i, line in enumerate(f):
            line = line.strip()
            print('line {:3d}: {}'.format(i, line))

            if len(line) > 0:
                # this will only run when the line is NOT empty

                data, _ = line.split('#')
                usr, pwd = data.split(':')
                usr = usr.strip()
                pwd = pwd.strip()

                print('line {:3d} usr: {}'.format(i, usr))
                print('line {:3d} pwd: {}'.format(i, pwd))

                loginBOT(usr, pwd)

Примечание: я много использую .strip(), чтобы уменьшить количество возможных ошибок, особенно с окончаниями строк, пробелами или символами табуляции, считанными из файла. Мне нравится быть в безопасности, а не сожалеть.

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