ウェブサイトのマルチプロセッシングスクラップを実行しようとしています。情報を取得するすべてのノードのリストを取得してから、データを1つ1つ並列に処理します。私のコードは以下の通りです:エラードキュメントをチェックマルチプロセスを試しているときにローカルオブジェクトをピケッとすることができません
と私のpython端子の
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import multiprocessing
def ResPartido(node):
ft=node.find_element_by_css_selector('.status').text
if ft.strip()!='FT': return
hora=node.find_element_by_css_selector('.time').text
names=list()
for nam in node.find_elements_by_xpath(
'.//td[contains(@style,"text-align")]/a[contains(@id,"team")]'):
name=nam.text
if '(N)' in name:
name=name.split('(N)')[0]
names.append(name)
score=node.find_element_by_css_selector('.red')
return [hora,name,score.text]
if __name__ == "__main__":
browser=webdriver.Chrome()
SOME CODE
nodes=browser.find_elements_by_xpath(
'//tr[contains(@align,"center")]/following-sibling::tr[.//div[contains(@class,"toolimg")]]')
p = multiprocessing.Pool()
p.map(ResPartido,nodes) <---Here is the error
.......
>>AttributeError: Can't pickle local object '_createenviron.<locals>.encodekey'
画像を、それはリストがpickableオブジェクトであると言い、そのための機能がメインの前に宣言されていますMultiProcessingを使用しているとき何が間違っているのか分かりません。
ええ、 '_createenvironは何ですか? .encodekey'? –
ピクルがどこに呼び出されているのかわかりません。それがどこにあるかを追跡できますか? – Acccumulation
エラーの画像を追加しました。それは私がマップ関数と呼ぶ行にあります。変数ノードはhtmlノードのリストです。それはかなりです。 – puppet