私のdjangoアプリでは、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()
2 つのプロセスが同時に動作し、セレンを使用すると、このエラーが発生します。最初のプロセスは 'www.google.it' で Firefox を開始し、正しいテキストを返します。2 番目のプロセスは URL 'www.python.com' で www のテキストを返します。 .google.it であり、www.python.com のものではありません。どこが間違っているか教えてもらえますか?