码迷,mamicode.com
首页 > 编程语言 > 详细

多线程爬虫介绍

时间:2018-09-02 00:07:35      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:带宽   产生   其他   style   学院   hellip   保存   老师   color   

一个进程里只有一个线程,我们称之为单线程爬虫。单线程爬虫每次只访问一个页面,不能充分利用电脑的网络带宽。一个页面最多也就几百KB,所以爬虫在爬取一个页面的时候,多出来的网速就浪费掉了。

而如果我们可以让爬虫同时访问10个页面,就相当于我们的爬取速度提高了10倍。这个时候就需要使用多线程技术了。

这里有一点要强调一下,Python这门语言在设计上的时候,有一个GIL锁。这个东西让Python的多线程都是伪多线程。本质上还是只有一个线程,但是这个线程每个事情只做几毫秒,做完几秒救保存线程,换做其他事情几毫秒,换一轮下来继续回到第一件事上,恢复线程再做几秒,继续换……

在《X战警-天启》中,万磁王他儿子从教授的学院里面救出了非常多的人。由于他速度非常的快,所以虽然它是一个人一个人救的,但是对其他人来说,就感觉像是全部同时移动到了学校外面去了一样。

这样微观上的单线程,在宏观上看起来就像是同时在做几件事。这种机制在IO密集型的操作上面影响也不大,但是在CPU计算密集型的操作上面,由于CPU本来十分繁忙,这就会对性能产生非常大的影响。所以涉及到计算密集型的程序,就需要使用多进程,Python的多进程不受GIL锁的影响。

爬虫属于IO密集型的程序,所以使用多线程不会不会对性能造成太大的影响。

 

转载:极客学院某位老师的话(修改了一点点)。

多线程爬虫介绍

标签:带宽   产生   其他   style   学院   hellip   保存   老师   color   

原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9571842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!