在我的 django 应用程序中,我使用 selenium 来抓取和解析一些 html 页面。我试图引入多进程来提高性能。这是我的代码:
import os
from selenium import webdriver
from multiprocessing import Pool
os.environ["DISPLAY"]=":56017"
def render_js(url):
driver = webdriver.Firefox()
driver.set_page_load_timeout(300)
driver.get(url)
text = driver.page_source
driver.quit()
return text
def parsing(url):
text = render_js(url)
... parsing the text ....
... write in db....
url_list = ['www.google.com','www.python.com','www.microsoft.com']
pool = Pool(processes=2)
pool.map_async(parsing, url_list)
pool.close()
pool.join()
当两个进程同时工作并使用 selenium 时出现此错误:第一个进程使用“www.google.it”启动 firefox 并返回正确的文本,第二个使用 url“www.python.com”返回 www 的文本.google.it 而不是 www.python.com。你能告诉我哪里错了吗?