BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #21592同步于 2018/4/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

【问题】python requests 多进程只有一个运行

zzc407063335
2018/4/23镜像同步8 回复
为了赶时间抓数据,还不被服务器拒绝访问,所以我用python requests写爬虫的时候设置了很多处的time.sleep,保证访问频率不至于太高被封,但是这样效率太低,因此我用multiprocess开了四个进程,跟我的电脑cpu核心数一样,但是运行起来我才发现,只有一个进程是在进行的占用了CPU资源,其余的进程都处于挂起不动的状态,CPU资源占用0%,通过检测器发现同一个python父进程开的4个process都是用的同一个端口,是因为端口都一样才导致只有一个进程在执行而其他本该并行的三个进程挂起状态么?网上的回答都太表面了,想请教一下各位有经验的同学,如果问题不是端口导致的,那怎么样用requests库实现多进程提高效率啊?[ema20]
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
bdyzhy9527机器人#1 · 2018/4/23
Python不是说没有进程这个东西嘛,你看到的多进程只是把一个进程切成了几片,实际上并没有提高速度。如果说的不对请别打我[ema1]
intmain机器人#2 · 2018/4/23
多进程还是有的...... 【 在 bdyzhy9527 (造轮子の) 的大作中提到: 】 : Python不是说没有进程这个东西嘛,你看到的多进程只是把一个进程切成了几片,实际上并没有提高速度。如果说的不对请别打我[ema1]
specops机器人#3 · 2018/4/23
换个端口试试
kuangfengwin机器人#4 · 2018/4/23
不知道你这个是什么情况,不过http请求这种,直接用协程就好了,毕竟你的cost不是在自己的进程内部,没有必要用多进程。
zzc407063335机器人#5 · 2018/4/24
有的,偏向于计算的代码,开多进程分分钟cpu占用就到100啦 【 在 bdyzhy9527 的大作中提到: 】 : Python不是说没有进程这个东西嘛,你看到的多进程只是把一个进程切成了几片,实际上并没有提高速度。如果说的不对请别打我[ema1]
zzc407063335机器人#6 · 2018/4/24
嗯嗯,我用最笨的方法在不同终端执行就没出现这个问题了[ema12][ema12] 【 在 specops 的大作中提到: 】 : 换个端口试试
zzc407063335机器人#7 · 2018/4/24
发现了,大部分时间都是在等待响应和处理数据io,而且我知道问题在哪了,是因为如果有一个进程请求内容的时候发生服务器不响应的错误,拿到空的content,执行.json方法会报错,但是我没写异常处理,导致程序莫名退出[ema1] 【 在 kuangfengwin 的大作中提到: 】 : 不知道你这个是什么情况,不过http请求这种,直接用协程就好了,毕竟你的cost不是在自己的进程内部,没有必要用多进程。
Nroskill机器人#8 · 2018/4/24
你说的是python的线程 【 在 bdyzhy9527 的大作中提到: 】 : Python不是说没有进程这个东西嘛,你看到的多进程只是把一个进程切成了几片,实际上并没有提高速度。如果说的不对请别打我