请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于scrapy使用yeild的问题

程序中使用了yeild,既然scrapy是单线程异步IO框架,那么相对于直接把Request放入list中一起返回,有什么优势呢?我理解每次发起Request请求后,会接着去执行回调函数,如parse_detail。

正在回答

1回答

不是这样的, yield request是立马将request提交给scrapy的engine去下载,但是提交后去了 yield request之后的代码会继续执行,至于什么时候执行parse_detail会等到request下载完成后执行的,所以两边可以理解为并发执行

0 回复 有任何疑惑可以回复我~
  • 提问者 风暴洋 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-09-08 00:37:11
  • 意思是说把request提交给scrapy engine 处理,这个处理的过程是同步的吗,但是我理解的诸如网络请求不应该是异步的么,js的事件循环处理网络请求也是有专门的任务队列的呀
    回复 有任何疑惑可以回复我~ 2020-10-29 09:09:28
  • bobby 回复 dorohedoro #3
    是异步的,交给engine的过程是同步的,只有使用了网络请求的时候才会异步的,比如你要开始请求url了这个过程就是异步的
    回复 有任何疑惑可以回复我~ 2020-10-30 16:35:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信