爬虫对服务器 CPU,内存和网速的影响
本文介绍了爬虫对服务器的影响,主要是为小白同学普及爬虫的基础知识。当我们写爬虫时,我们首先会想到打开多线程。不幸的是,如果使用的语言是Python,因为Python有GIL,CPU中只有一个线程在任何时候运行,但Python的多线程也可以提高爬虫的速度。当我们用Python的多线程写爬虫时,速度并不慢。为什么?因为爬虫更喜欢IO,网络IO和磁盘IO是爬虫最大的瓶颈。现在CPU处理速度很快,CPU比请求快。网络请求需要等待对方服务器的响应,这个过程比较慢。下载数据后,将数据插入自己的数据库,等待自己的磁盘响应。那么,有没有更好的方法实现爬虫并发下载呢?答案是:是的,我们可以使用第三方框架,如异步框架gevent、tornado等。,或者Python的多过程+异步方法,可以大大提高我们的下载速度。爬网站时,同时开启64个过程,并且是一种异步方法,下载速度稳定在700k左右,因为公司的运维限制了网络速度,不可能提高网速,然后内存消耗是87%,内存是12G,CPU消耗是100%,为什么CPU消耗这么高?主要原因是数据分析需要消耗CPU和进程切换,也需要消耗CPU。网页的大小应该在10k到20k之间,粗略统计一下,每分钟可以下载1750个网页,包括数据下载、分析和入库的全过程。这个下载速度是1750*60分钟等于105000,也就是说一个小时可以下载10万个网页。这个速度怎么样?我觉得下载速度很慢。为什么,因为他在这个网站上封了ip,他需要通过代理访问他们的服务器,这也是一个非常耗时的过程,只能通过ip池来解决。ip池维护了1000左右的有效ip,并有专门的服务进行验证,可以随时选择ip抓取目标网站。理想状态是一分钟抓取3000条数据,一天24小时抓取500万左右的网页数据。你感到惊讶吗?网络90%的流量是由爬虫贡献的。爬虫给目标网站带来了很大的压力。为了避免损坏目标网站,不建议打开太多并发。

转载于天翼云,如有侵权,请联系删除,谢谢