请稍等 ...
×

采纳答案成功!

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

Pipeline中的函数都是自动调用的吗?

图片描述

老师好,在Pipeline里定义的类如JsonWithEncodingPipeline里面定义的函数是否只有__init__process_item是可以自动调用,而自己定义的函数如spider_closed仍需要手动调用?

我在spider_closed中添加端点,debug过程没有运行到端点,是不是因为spider_closed这个函数在这里还没有起作用。

谢谢老师!

正在回答 回答被采纳积分+3

1回答

bobby 2020-02-24 12:40:38

当然了 可以中讲解过,。你自定义组件那么只有指定的方法名的函数才会被调用,spider_closed方法写在spider中会被调用 但是写到其他地方就不一定会被调用了

0 回复 有任何疑惑可以回复我~
  • 那这里写spider_closed()方法的意义是什么呢?不会被自动调用,也没有手动调用,我还以为这个方法起作用了
    回复 有任何疑惑可以回复我~ 2021-06-23 10:06:43
  • spider_closed是当你的爬虫运行完后以后退出之前会被调用,也就是这里一般都是用来释放资源的,比如假设你打开了文件,这里进行flush,打开了chrome这里进行close,当然你不手动释放,操作系统就会安装进程退出的方法自动处理,只是这里手动处理更加优雅,如果你有更多的退出前的处理这里写就行了
    回复 有任何疑惑可以回复我~ 2021-06-25 10:39:54
  • 明白了,爬虫退出前调用啊,谢谢老师
    回复 有任何疑惑可以回复我~ 2021-06-25 12:25:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信