多处理时如何获取用户输入

2024-09-30 18:16:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行多个需要输入CAPTCHA的selenium实例,但我是多处理的初学者

因此,在运行和输入时,会显示一个错误:

EOFError: EOF when reading a line

下面是我正在运行的代码示例:

import time
from selenium import webdriver
import multiprocessing

def first():
    chromedriver = "C:\chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.set_window_size(1000, 1000)
    driver.get('https://www.google.com/')
    time.sleep(5)
    captcha1 = input("in1: ")
    print(inn)

def sec():
    chromedriver = "C:\chromedriver"
    driverr = webdriver.Chrome(chromedriver)
    driverr.set_window_size(1000, 1000)
    driverr.get('https://www.google.com/')
    captcha2 = input("in2: ")
    print(ins)

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=first)
    p2 = multiprocessing.Process(target=sec)
    p1.start()
    p2.start()

    p1.join()
    p2.join()

我不仅需要知道如何给出输入,而且在这种情况下,首先需要输入'captcha2',因此'captcha1'必须等待'captcha2'给出之后


Tags: importtimedefdriverseleniumchromemultiprocessingchromedriver
1条回答
网友
1楼 · 发布于 2024-09-30 18:16:19

您需要将请求用户输入的消息发送回主进程,以便它(并且只有它)可以向用户询问这些信息。最简单的方法可能是为请求创建一个^{}对象(以便主进程可以侦听所有子进程),为每个子进程创建一个Pipe对象以获取答案。当然,每个请求都会被标记为发送它的进程的标识符,以便将响应发送到正确的位置

相关问题 更多 >