我有一个阵列
myArray = array(url1,url2,...,url90)
我要同时执行这个命令三次
scrapy crawl mySpider -a links=url
每次有1个网址
^{pr2}$当第一个完成他的工作,他会得到另一个网址
scrapy crawl mySpider -a links=url4
我读了this question,和{a2},我试着这样做:
import threading
from threading import Thread
def func1(url):
scrapy crawl mySpider links=url
if __name__ == '__main__':
myArray = array(url1,url2,...,url90)
for(url in myArray):
Thread(target = func1(url)).start()
当您编写
target = func1(url)
时,实际上是在运行func1
,并将结果传递给Thread
(不是引用来执行该函数)。这意味着函数在循环中运行,而不是在单独的线程中运行。在你需要这样重写:
然后告诉线程用参数
(url,)
运行func1
此外,您应该等待线程在循环之后完成,否则您的程序将在启动所有线程后立即终止。在
编辑: 如果您只想在同一时间运行3个线程,您可能需要使用ThreadPool:
^{pr2}$相关问题 更多 >
编程相关推荐