介绍
大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读者,请不要着急,以后我们会学习主流的开源框架,打造出一个强大专业的爬虫系统!不过在此之前,要继续打好基础,本期我们先介绍爬虫的种类,然后选取最典型的通用网络爬虫,为其设计一个迷你框架。有了自己对框架的思考后,再学习复杂的开源框架就有头绪了。
今天我们会把更多的时间用在思考上,而不是一根筋的coding。用80%的时间思考,20%的时间敲键盘,这样更有利于进步。
语言&环境
语言:带足弹药,继续用Python开路!
threading:threading库可以在单独的线程中执行任何的在Python中可以调用的对象。Python 2.x中的thread模块已被废弃,用户可以使用threading模块代替。在Python 3中不能再使用thread模块。为了兼容性,Python 3将thread重命名为_thread。
queue:queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。
re:Python 自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使 Python语言拥有全部的正则表达式功能。
argparse:Python用于解析命令行参数