多进程submit

当执行 executor.submit 方法之后
我们会得到一个 Future 对象:

这些个 Future 对象封装了
一些异步操作的方法
常常会用的有这么几个:
1、 done() :
如果调用已被取消或正常结束那么返回 True 。
2、result(timeout=None):
返回调用返回的结果。
3、add_done_callback(fn):
当 future 被取消或完成运行时,将会调用 fn 方法。
4、as_completed(fs):
当 future 执行完之后会返回一个迭代器。
此代码开启最多 5 个线程执行
每一次 submit 就会得到一个 Future
future 里存放的的爬取数据
接下来可以对 future 做进一步操作
add_done_callback 方法
比如当它执行完成的时候去回调一个 done 方法。
要实现此功能就要使用 future 的
add_done_callback 方法


可以看到
每次 submit 都会调用到自定义的 done 方法
放入队列等待执行
将每次的 future 放入队列等待执行
这时每个 future 里就是我们爬取的数据了
就可以分别对其进行数据解析,
得到我们想要的数据
将数据存入 Excel 、数据库等等
