请稍等 ...
×

采纳答案成功!

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

请问老师在item中使用MapCompose方法,传入的我自定义函数如何带参数?

比如

content = scrapy.Field(

input_processor=MapCompose(method_a)

)

这个method_a有两个参数,第一个是item中传进来的需要处理的参数,如果还有一个参数怎么办?

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

1回答

bobby 2017-07-10 10:00:21

亲 这个不需要带参数 你要处理的参数无非就是当前的list中的值啊, 其余的值为什么要传递进去呢

0 回复 有任何疑惑可以回复我~
  • 提问者 天真男 #1
    是的,处理的就是list,但我是为了可以复用这个函数,另外一个参数只是一个标记而已。
    比如我有两个spider spiderA和spiderB,对映有两个itemA和itemB,我在处理这两个item的某个字段,比如都叫title,需要分别传入不同的参数进行拼接,但其他对于这个Item的处理逻辑都一样,我想复用这个函数,所以想传入一个参数。不然我就要把这个函数复制两个,分别针对spiderA的item和spiderB的item。代码显得很冗余。
    回复 有任何疑惑可以回复我~ 2017-07-10 10:59:09
  • 提问者 天真男 #2
    或者这样老师您看行不行?
    我看了一下文档,在构建itemloader的时候,似乎可以传入一个context的上下文,这个上下文能帮助我在item中获取到一些参数吗?也就是在使用input_processor和output_processor的时候,获取到这个context吗?
    回复 有任何疑惑可以回复我~ 2017-07-10 11:10:06
  • bobby 回复 提问者 天真男 #3
    我看了一下源码 使用的偏函数, 是会自动获取函数的所有参数的, 你直接在函数中加参数就行了
    回复 有任何疑惑可以回复我~ 2017-07-11 09:56:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信