Python “如何修复”;无法序列化'_io.BufferedReader';“对象”;当多重处理时?

Python “如何修复”;无法序列化'_io.BufferedReader';“对象”;当多重处理时?,python,web-scraping,multiprocessing,Python,Web Scraping,Multiprocessing,当我试图解析网站中的大量网页时,会出现以下错误:“原因:'TypeError(“无法序列化'\u io.BufferedReader'object',)”。我如何修复它 完整错误消息为: File "main.py", line 29, in <module> records = p.map(defs.scrape,state_urls) File "C:\Users\Utilisateur\Anaconda3\lib\multiprocessing\pool.py",

当我试图解析网站中的大量网页时,会出现以下错误:“原因:'TypeError(“无法序列化'\u io.BufferedReader'object',)”。我如何修复它

完整错误消息为:

File "main.py", line 29, in <module>
    records = p.map(defs.scrape,state_urls)
  File "C:\Users\Utilisateur\Anaconda3\lib\multiprocessing\pool.py", line 266, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "C:\Users\Utilisateur\Anaconda3\lib\multiprocessing\pool.py", line 644, in get
    raise self._value
multiprocessing.pool.MaybeEncodingError: Error sending result: '<multiprocessing.pool.ExceptionWithTraceback object at 0x0000018DD1C3D828>'. Reason: 'TypeError("cannot serialize '_io.BufferedReader' object",)'
从defs文件:

def刮取(url):
数据=[]
行字符串=“”
最终数据=[]
最终字符串=“”
uClient=uReq(url)
page_html=uClient.read()
uClient.close()
page_soup=soup(page_html,“html.parser”)
table=page_soup.find(“table”,{“class”:“table table striped”})
table_body=table.find('tbody'))
行=表体。查找所有('tr')
对于行中的行:
cols=行。查找所有('td'))
cols=[ele.text.replace(',','')for ele in cols]#清除它
对于cols中的ele:
如果ele:
数据追加(ele)
data.append(“,”)
data.append(“\n”)
返回(数据)

io.BufferedReader不是文件句柄,您正在从
uClient=uReq(url);page\u html=uClient.read()中的url读取
其中
uClient
io
对象,
read
正在消耗字节数据,而
uReq
是在哪里定义的?您使用的是Windows吗?通常情况下,由于缺少
fork
系统调用,Windows无法很好地进行多处理,因此在生成子进程时出现序列化问题…I似乎您应该在
scrap
内部重新定义
uReq
以避免此问题eq是从urllib.request导入的,我自己没有定义它。是的,我正在使用windows。我可以做些什么,还是应该尝试从其他操作系统运行它?
io.BufferedReader
不是文件句柄,您正在读取g来自
uClient=uReq(url);page\u html=uClient.read()中的url
其中
uClient
io
对象,
read
正在消耗字节数据,而
uReq
是在哪里定义的?您使用的是Windows吗?通常情况下,由于缺少
fork
系统调用,Windows无法很好地进行多处理,因此在生成子进程时出现序列化问题…I似乎您应该在
scrape
内部重新定义
uReq
以避免此问题。eq是从urllib.request导入的,我自己还没有定义。是的,我正在使用windows。我可以做些什么,还是应该尝试从其他操作系统运行它?