老师,scrapy使用代理api
来源:16-1 scrapyd部署scrapy项目
sjdgbhb
2019-10-03
scrapy是异步的,这个好理解,scrapy是多线程的还是多进程的呢,在哪里能看到?还有在scrapy中间件里使用request调用代理api,会不会破坏了scrapy的异步性
写回答
2回答
-
sjdgbhb
提问者
2019-10-08
scrapy能处理阻塞io,那么我在代码里加个sleep,或者使用selenium,这样还不会破坏异步性吗?好像会破坏,目前我写了一个代理中间件,用requests库调用的代理api,如果这不会破坏异步性,哪种写法会破坏异步,哪种不会呢
012019-10-08 -
bobby
2019-10-08
scrapy 本身并没有什么太多的多线程和多进程等,因为scrapy底层是twisted,这个框架是一个异步io框架,是基于回调实现的,并不是多线程也不是多进程,回调比多线程和多进程性能都高,但是有一个很大的限制就是不能在代码中使用阻塞io方法,不然所有的请求都会被阻塞,但是有很多库都是同步io,所以为了解决这个问题twisted在启动的时候就会启动一个线程池,可以把阻塞的方法扔到这个线程池中去执行,使用ip代理并不会破坏异步性
00
相似问题