python - 如何让用户决定他想运行多少线程/任务?
问题描述
我用 selenium 在 python 中编写了一个小 Sneaker-Bot,我已经完成了主要部分。我需要编程的最后两部分是,我如何让用户在一个文本文件中输入他的帐户的用户名和密码,或者我听说 json 文件也很好,我如何使用程序访问这些数据和最后,我如何让用户为每个线程创建具有特定用户名和密码的线程/任务。我希望你能理解我的英语,也许你下面有一些人可以帮助我完成最后一部分。
解决方案
要从文件中获取用户名和密码,您可以使用:
f = open(path_to_file)
infolist = f.readlines()
f.close()
这将为文件中的每一行在列表中添加一个新项目,这意味着您只需将用户名和密码分别放在自己的行中。请小心,因为将密码放在文本文件中通常不是很安全,因此请确保您了解风险。
至于第二部分,我将创建一个可以使用 for 循环填充线程的列表,其范围由用户输入指定。然后在迭代期间,为“args”参数提供其任务所需的凭证列表的某些项目。下面的例子:
from threading import *
def spawnScraper(username, password):
print(f'{username} and {password}')
## run the instance here
def main():
#f = open(path_to_file)
#infolist = f.readlines()
#f.close()
# ^ above code to retrieve data from file
infolist = ['user1', 'pass1', 'user2', 'pass2'] # using for demonstration
threadnum = int(input('num >>> '))
threads = [] # create list to store threads
for threaditem in range(threadnum):
uname = infolist[threaditem*2] # get information from infolist
pword = infolist[threaditem*2+1]
threads.append(Thread(target=spawnScraper, args=[uname, pword])) # create thread
threads[-1].start() # start thread
main()
确保取消注释文件打开部分以实际集成到您的程序中。如果您有任何其他问题,请务必在下面发表评论。
推荐阅读
- php - 2FA - 如何正确存储登录凭据
- javascript - 在 populate.match mongoose 中丢弃带有 null 的文档
- php - 从 ACF 关系类型中获取相关的 ACF 字段
- apache-spark - 在正在运行的 EMR 集群上启动 Spark 作业需要多长时间?
- java - 在 Azure Function 中使用特定的 Java JRE 版本
- python - Pandas Dataframe GroupBy,如何获得所有内容分组的值?
- javascript - 无法使用地图渲染两级深层嵌套对象
- react-native - 反向图标使背景更大
- javascript - 我需要提供什么链接才能使用 Bolt 正确安装我的 Slack 应用程序?
- java - 避免来自 Spring Boot 应用程序端的重复数据