若要整合Django和Scrapy,可利用DjangoItem,可節省定義Item的部分,讓Scrapy的Item定義自動去參照Django model,也可在Item增加欄位。
ItemLoader的部分,預設add_value後,postprocessor都會以list為最後輸出結果,可更感post processor為TakeFirst。
在Pipeline裡,若應用到DjangoItem,要先save後,在以Django model來操作 Foreign Key或是ManyToManyField部分。DjangoItem無法直接取得Django model內容。DjangoItem只是取去參考Django model,省去寫 field_xxx = scrapy.Field()而已。
沒有留言:
張貼留言