我在读取文本文件并自动写入该信息以登录网站时遇到一些问题。
到目前为止,我已经编写了一些代码,这些代码将从我的文本文件中读取并将前两行写入网站。
我所有的账号和密码都是这样写的 - 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/