有个需要 cookie 的页面,需要先登录再进行后续操作。
我用如下方法可以在单线程下成功。
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
opener.open(loginUrl, loginData).read() #登陆
opener.open(otherUrl, otherData).read() #后续操作
Python 多线程似乎不支持写入全局变量,用以下方式, opener 不能写入,因此后续操作不能进行:
def do(data):
global opener
opener.open(otherUrl, data).read()
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
pool = multiprocessing.Pool(processes = 2)
outputs = pool.map(do, [otherData, otherData]) #do 内进行后续操作
pool.close()
pool.join()
要求:不能在 pool 内登陆。
Python 是否不能实现这个需求?
不取个好的标题,哪有人进来