def process_item(self, item, spider):
print('打印的文件地址和名字为')
print(item['file_url'], item['name'])
key_word = {"file_url":item['file_url'] , "name": item['name']}
res = self.db.find(key_word)
if list(res):
print('数据量重复')
raise DropItem("Duplicate item found: %s" % item)
else:
print('*****************************插入数据进入数据库**************************************************')
self.db.insert({"file_url": item['file_url'], "name": item['name']})
return item
朋友说我这样查找很慢,让我建立索引?是_id索引吗?
慢在你每次收到一个item是先从数据库里查询是否存在,再选择是否插入.
一条数据你要进行一次类似mysql的"全表扫描",很不划算.
你需要保证查询的速度,或者换一个去重的方式.
如果你的数据小于一万条,操作也无所谓.