采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
通过课程我学习到item可以以meta的形式 meta = {"item":item} 在Request之间传递,那么如果使用的是itemloader呢?尝试过同样的方法并不能成功
你这里说到的使用 itemloader 是什么意思呢 不太明白,能具体描述一下你的需求吗?
老师您好! 就比如存在一个item类 TestItem,正常情况下,可以 item = TestItem() 之后存了各种数据,如果要传到下一个request收集,可以 yeild = Request(url, meta={"item":item}) 对吧,那同理 使用 item_loader = ItemLoader(TestItem(), response=response) 收集数据也是可以,但是却不能: yeild = Request(url, meta={ "item_loader ": item_loader }) 就是不能这样传到下一级去收集数据,还是我哪里弄错了?
这样传递数据你传递的是一个类,meta在scrapy中扮演的角色是什么需要看源码才能确定, 如果scrapy内核需要序列化这个值,但是这个值又不会序列化可能就会引起错误,你可以直接把item实例yield过去试试,为什么一定要yield你的item_loader呢
item = item_loader.load_item(),然后传递item就可以,这样传递的是装载后的item,里面是有数据的。如果直接传递item_loader,传递的相当于一个装载器,是没有灵魂的...
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.7k 30
2.5k 18
1.1k 18
1.3k 15
2.7k 15