python爬虫(中)--多进程和多线程

前言

前面我们讲到了基本爬虫包括请求、提取和保存三个部分,这是一个基本爬虫应该有的部分,那么这时候的这个爬虫有了能爬能存的能力,但是这种能力是很弱的,弱主要体现在三点:①爬虫本身健壮性并不高,有很多情况不一定考虑到;②爬虫爬的很慢,效率很低;③防反爬能力不强,容易被Ban掉

我们在这篇博文就会就上面第二点讲讲怎么通过运用多线程和多进程来提高爬虫的工作效率.


多线程

<待补充>


多进程

首先要声明一点,多进程和多线程是两个不同的概念,别混淆了。

进程的调度:当有多个进程并行执行时,每个进程得到的时间片的时间不一样,哪个进程接受哪个请求以及执行完成的时间都是不定的,所以不处理的话会输出乱序。

python中多进程用到的模块是multiprocessing(python就是模块多…一些基本的,常用的都已经有模块了……),multiprocessing[下面简称mp]的很大的一部分与threading模块使用同一套API

只有Linux的fork()才是真正意义上的多进程,所以在Linux上就用multiprocessing库就好了

mp在多核CPU中的表现会比threading好很多,因为可以做到跑满多核。

如果操作的进程数目不大(十几左右)尚可用multiprocessing.Process类动态生成多个进程,但是如果数目很大(上百),手动限制进程数目就显得特别繁琐,这时候进程池就派上用

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值