如果幫到你的話,請點個贊
一:將item變爲字典,而且scrapy添加字典用語句insert_one
錯誤代碼:
def process_item(self, item, spider):
name = item.__class__.__name__
if item:
self.db[name].insert_one(item) # 保存數據
print("插入數據{}到Mongo成功".format(item))
return item
正確寫法:
def process_item(self, item, spider):
name = item.__class__.__name__
if item:
self.db[name].insert_one(dict(item)) # 保存數據
print("插入數據{}到Mongo成功".format(item))
return item
二:在items中添加_id = iscrapy.Field()
添加完以後在spider裏添加以下代碼,還得引入random模塊(爲了賦予id值,而不是什麼內存區號),即在文件開頭寫上 import random
item['_id'] = str(random.randint(1,100000))
三:注意在spider.py中yield的縮進
yield item一定要跟循環完的語句保持一致,即賦值完一組以後,馬上緊跟着yield item
def parse_page(self,response):
item = ParkItem()
item['name'] =
item['area']=
yield item #生成item的當前字典以後傳送數據到pipelines進而保存到數據庫