import lxml.html
import mechanize, cookielib
import multiprocessing
browser = None
def download(i):
link = 'www.google.com'
response = browser.open(link)
tree = lxml.html.parse(response)
print tree
return 0
if __name__ == '__main__':
browser = mechanize.Browser()
cookie_jar = cookielib.LWPCookieJar()
browser.set_cookiejar(cookie_jar)
browser.set_handle_equiv(True)
browser.set_handle_gzip(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(False) #inicialmente estava on mas deve ser melhor off
browser.set_handle_robots(False)
browser.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:2.0.1) Gecko/20100101 Ubuntu/11.04 maverick Firefox/4.0.1')]
pool = multiprocessing.Pool(None)
tasks = range(8)
r = pool.map_async(download, tasks)
r.wait() # Wait on the results
다중 처리 부분을 제거하면 작동합니다. 다운로드 기능 내에서 브라우저를 호출하지 않으면 작동합니다. 그러나 다중 처리 + 기계화가 단순히 작동하지 않는 것처럼 보입니다.Python :이 코드가 Windows에서 작동하도록 수정하려면 어떻게해야합니까?
어떻게 해결할 수 있습니까? 그것은 리눅스에서 발생하지 않습니다.