我试图为列表中的每个项目创建多个 chrome 线程,并同时执行列表中每个项目的函数,但不知道从哪里开始任何帮助将不胜感激。
代码片段
import sys
def spotify(elem1, elem2, elem3):
print("proxy: {}, cc: {}, cvc: {}".format(elem1, elem2, elem3))
def get_cc():
cc = ['5136154545452522', '51365445452823', '51361265424522']
return cc
def get_cvc():
cvc = ['734', '690', '734']
return cvc
def get_proxies():
proxies = ['51.77.545.171:8080', '51.77.254.171:8080', '51.77.258.82:8080']
return proxies
proxArr = get_proxies()
ccArr = get_cc()
cvcArr = get_cvc()
yeslist = ['y','yes']
for elem in zip(proxArr, ccArr, cvcArr):
spotify(elem[0], elem[1], elem[2])
restart=input("Do you wish to start again: ").lower()
if restart not in yeslist:
sys.exit("Exiting")
和答案类似here https://stackoverflow.com/questions/49617485/is-it-possible-to-run-multiple-instances-of-one-selenium-test-at-once,可以启动Chrome的多线程。
- 定义一个执行 Selenium 代码的函数,
execute_chrome
在这种情况下
- 将所有必需的参数添加到函数定义中
- 将参数作为元组传递到您的
Thread
打电话,例如args=(elem, )
- 使用与其他 Python 包不同的名称保存脚本,例如
my_selenium_tests.py
-
最好从命令行运行脚本,而不是从交互式环境(例如 Jupyter 笔记本)
from selenium import webdriver
import threading
import random
import time
number_of_threads = 4
def execute_chrome(url):
chrome = webdriver.Chrome()
chrome.get(url)
time.sleep(1 + random.random() * 5)
driver.quit()
urls = ('https://www.google.com',
'https://www.bing.com',
'https://www.duckduckgo.com',
'https://www.yahoo.com')
threads = []
for i in range(number_of_threads):
t = threading.Thread(target=execute_chrome, args=(urls[i], ))
t.start()
threads.append(t)
for thread in threads:
thread.join()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)