爬虫可以实现数据的采集,如果说仅是采集一些小数据,对爬虫的要求并不高,但是如果需要采集大量的数据,那么爬虫可以采用多线程或者多进程,究竟是使用哪一种比较好呢?
其实对于爬虫采用多线程还是多进程好,这需要根据具体的环境分析的,下面小编介绍一些关于爬虫的知识。
一、多线程爬虫的优缺点
1.优势
有效利用CPU时间,极大减小下载出错、阻塞对抓取速度的影响,整体上提高下载的速度,对于没有反爬虫限制的网站,下载速度可以多倍增加。
2.缺点
对于有反爬的网站,速度提升有限,提高了复杂度,对编码要求更高,线程越多,每个线程获得的时间就越少,同时线程切换更频繁也带来额外开销,线程之间资源竞争更激烈。
二、多进程爬虫的优缺点
相对于多线程,多进程爬虫更重,更慢,但也可靠。
多进程爬虫可以认为是分布式爬虫的基础,在单机上也可以用。因为一般大型的网站的服务器都是采用分布式部署的,可以采用多进程同时在不同的服务器器上进行爬取。
三、爬虫采用多线程还是多进程好
进程与线程是明显不同的,因为PYTHON本身由于GIL的关系,也就是它本质一个PYTHON进程只可能有一个线程,不管说的是多少线程都是模拟出来的多线程,所以,你真要快速,这个要用多进程来处理。
在python环境下,多进程稍稍比多线程好实现好理解一点。
因为爬虫大多数都是运行在linux内核的服务器上面,而在linux操作系统下,多进程要比多线程更加合适,因为调度开销和多线程差不多,但是进程性能更好。
如果在windows系统下跑爬虫的话,建议使用框架或者使用多线程。
爬虫毕竟不是服务器交互,没有人会开1k的线程去跑这个,所以一般情况下我们把自己爬虫的效率提升几倍即可。
从上文可知,不管爬虫采用多线程还是多进程好,都有自己的优缺点,可以尝试多实战一些案例,具体分析。