Python + Requests + Fcntl: 双引擎下载小说
前言
略
双引擎
双引擎一般理解为双线程或双进程。这里指的是双进程的双引擎。双线程和双进程各有优略。BZ的理解是,线程消耗更少的系统资源,进程更容易控制。进程是系统基本的执行单元,线程依赖于进程不能单独存在。多线程的魅力在于一个进程可以包含多个线程。相对于一个进程启动同等数量的子进程来说,这明显占用更少的系统资源。但是线程也有一个很明显的缺点,就是比较难以控制。在强制关闭后,难以及时响应。进程在操作系统层面“可视化”程度较高。即使出现意外或基于临时的需求,双进程的双引擎包含多层面的多种终止运行的办法。基于稳妥的因素而并非极致追求效率的缘故,双进程引擎是不错的选择。
流程图
下载目录
下载章节
UML图
时序图
基本片段
库
Requests
导入包含requests、自定义的httpkit.py模块。
from httpkit import *
Scrapy
bash命令行pip安装Scrapy。
~$: pip install scrapy
导入scrapy.Selector分析HTML源码。
from scrapy import Selector
Fcntl
fcntl是Python3内置库,是关于文件锁的模块。用来处理异步任务中协同工作的数据交换和资源调配问题。
import fcntl
代码
略
附录
略