Email список из txt Python
Есть скрипт с использованием Selenium, где есть регистрация на разные почты. Есть также .txt файл с почтами (около 16000). Как сделать так, что при каждом новом цикле он брал следующую почту по списку. Спасибо за ответ заранее!
from selenium import webdriver
from auth import username, passw, full_name
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time, random
def login(mail, passw):
browser = webdriver.Chrome(executable_path='C:\\Users\\Sh1zik\\Desktop\\Bot\\chromedriver.exe')
browser.get(url="https://eifi.com/register/uJcBF9VvVl")
time.sleep(random.randrange(2,3))
email = browser.find_element_by_xpath("//input[@placeholder='Email']")
email.send_keys(mail)
time.sleep(random.randrange(1,2))
name = browser.find_element_by_xpath("//input[@placeholder='Full Name']")
name.send_keys(full_name)
time.sleep(random.randrange(1, 3))
password = browser.find_element_by_xpath("//input[@placeholder='Password']")
password.send_keys(passw)
time.sleep(random.randrange(1, 3))
confpassword = browser.find_element_by_xpath("//input[@placeholder='Confirm Password']")
confpassword.send_keys(passw)
time.sleep(random.randrange(1, 3))
confpassword.send_keys(Keys.ENTER)
time.sleep(10)
time.sleep(1000000)
login(mail,passw)
Ответы (2 шт):
Автор решения: farkon00
→ Ссылка
from selenium import webdriver
from auth import username, passw, full_name
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time, random
password = "qwerty123"
def login(mail, passw):
browser = webdriver.Chrome(executable_path='C:\\Users\\Sh1zik\\Desktop\\Bot\\chromedriver.exe')
browser.get(url="https://eifi.com/register/uJcBF9VvVl")
time.sleep(random.randrange(2,3))
email = browser.find_element_by_xpath("//input[@placeholder='Email']")
email.send_keys(mail)
time.sleep(random.randrange(1,2))
name = browser.find_element_by_xpath("//input[@placeholder='Full Name']")
name.send_keys(full_name)
time.sleep(random.randrange(1, 3))
password = browser.find_element_by_xpath("//input[@placeholder='Password']")
password.send_keys(passw)
time.sleep(random.randrange(1, 3))
confpassword = browser.find_element_by_xpath("//input[@placeholder='Confirm Password']")
confpassword.send_keys(passw)
time.sleep(random.randrange(1, 3))
confpassword.send_keys(Keys.ENTER)
time.sleep(10)
file = open("account.txt").read()
for i in file.split("<Сюда вставить символ которым разделяется аккаунты, если каждая почта с новой строки \n>"):
login(i,password)
Как я понимаю вам нужен такой цикл. Подучите основы Python.
Автор решения: nomnoms12
→ Ссылка
Предполагая, что почты разделены переводом строки и находятся в файле mails.txt, могу посоветовать итерировать файловый объект следующим образом:
with open('mails.txt') as f:
for mail in f:
mail.rstrip()
Итерирование сильно экономит память — не требуется одновременно хранить все 16000 адресов.
Пример того, как можно обернуть скрипт:
def login(mail, passw):
...
def main():
with open('mails.txt') as f:
for mail in f:
login(mail, passw)
if __name__ == '__main__':
main()