python3中的Multiprocessing.map()

时间:2018-07-29 17:00:25

标签: python python-3.x python-requests multiprocessing python-multiprocessing

我的问题是我如何才能将itertools.cycle与多处理结合使用,从而使最终结果允许我遍历电子邮件,密码列表等“帐户”文件,并为我的每个请求提供新的代理make(在使用multiprocessing.map创建的每个进程中)。这有点难以解释,所以我提供了当前代码来帮助说明我的问题。在每个分配的进程(进程= 10)中,电子邮件组合对于每个发布请求都会更改,但是代理会每10个请求更改一次。我希望每个请求都完全独特。我的问题似乎是我依赖于创建的每个进程来使用next()函数切换代理。结果如下。预先感谢!

def main(account):
    proxy_switch = next(proxy_pool)
    proxy = {"http": proxy_switch}
    requests.post(url, proxies=proxy)

accounts=open('file.txt').readlines()
proxy_file=open('proxies.txt').readlines()
proxy_pool = cycle(proxy_file)
if __name__ == "__main__":
    p = Pool(processes=10)
    p.map(main, accounts)

抱歉,无法粘贴完整结果。基本上,它给: proxy1:creds1 proxy1:creds2 proxy1:creds3 proxy2:creds4 proxy2:creds5 proxy2:creds6

取决于池的大小。谢谢!

0 个答案:

没有答案