python多线程爬虫 python是多线程吗?
更新时间:2022-08-22 02:39:13 浏览次数:

  io密集:大部分时间都花在程序上io等待,比如网络io,即http请求等,磁盘io,即文件读写等。

  cpu密集: 程序大部分时间都花在了cpu如文本处理、数值计算等。

  如果是io密集,然后你可以通过线程池或协程池并发这部分功能,从而提高速度。

  但是这里的网络io前提是你的带宽不是你爬虫的瓶颈。

  如果是cpu如果密集,这部分工作可以通过流程池并行处理,从而提高速度。多流程意味着你的机器是多核的。

  但也有一些值得优化的地方,比如一些库的选择,比如beautifulsoup虽然很方便,但是有更快的实现方法,比如selectolax速度要快得多。

  如果你不能判断,那么先多线程,再多进程。

  如果单机解决不了,就用工作队列,比如celery。多机并行,肯定会提高速度,而且是水平扩展,当然,这必须让你的任务分布式。

推荐图文

鄂ICP备2024040700号-2
武汉砺行体育文化传媒有限公司-版权所有
数据源自网络仅供参考