python - 自动登录脚本需要使用存储在txt文件中的多个帐户登录

标签 python text split

我在读取文本文件并自动写入该信息以登录网站时遇到一些问题。

到目前为止,我已经编写了一些代码,这些代码将从我的文本文件中读取并将前两行写入网站。

我所有的账号和密码都是这样写的 - 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])      

最佳答案

如果这是您的文件格式:

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() 来减少可能的错误数量,特别是从文件中读取行结尾、空格或制表符时。我喜欢安全一点,而不是后悔。

关于python - 自动登录脚本需要使用存储在txt文件中的多个帐户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52344944/

相关文章:

html - 仅文本而不是父 span/div/body 的 CSS 背景?

python - 如何在没有列名的情况下使用 Pandas 进行排序

python - 麻麻。如何打开文件

text - 为什么文本编辑器会使粘贴代码的缩进变形?

python - 删除文本文件中包含 python 中特定单词/字符串的整行

string - VBA 分割字符串循环

javascript - Javascript 的奇怪行为

Python/mysql : Recommender system

python - 在 python 中搜索通配符的字符串并返回匹配位置

php - Android/PHP - 通过网络服务器发送 txt 文件?