本身是一个单线程的漫画爬虫, 为了不大改代码而加速, 用了选了最简单的线程池的办法.
基础的分析代码和下载代码都已经写好了,只改写了一下原本的单线程主循环
from multiprocessing.pool import ThreadPool |
python3的代码,用的multiprocessing
库里面的pool,爬虫里面主要时间卡在网络io上,所以直接用了几个线程没用进程。 pool.size
是工作线程数,这地方还是不要写太多,可能请求太多被服务器那边ban掉. pool.map
会调用第一个参数传递的函数。把第第二个参数列表里面的每一项分别作为参数传递给函数。这里为了偷懒就直接把三个参数打包穿进去,进去再解包。
直接把原来同步的单线程代码用函数包一下喂给pool
就好了.