我是多处理新手,我正在尝试编写一个程序来获取 google 上搜索查询的前 10 个结果。在此示例中,我只想同时运行 2 个搜索查询。这是我所拥有的:
import threading
from multiprocessing.pool import Pool
import pycountry
import bs4
import requests
from googlesearch import search
def getGoogleResults(query):
links = []
# from geeks4geeks
print("Getting google results...")
for j in search(query, tld="co.in", num=10, stop=10, pause=2):
links.append(j)
print("Got google results!")
return links
global queryResults
queryResults = {}
queries = ["stackoverflow", "github"]
if __name__ == "__main__":
with Pool(2) as p:
p.map(getGoogleResults, queries)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,出现以下错误:
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/multiprocessing/pool.py", line 771, in get
raise self._value
multiprocessing.pool.MaybeEncodingError: Error sending result: …Run Code Online (Sandbox Code Playgroud) python multiprocessing google-search python-3.x python-multiprocessing