采集数据的时候,由于先期对页面结构的分析不完善,导致采漏了一部分数据。完善代码之后重新运行 Scrapy,又采集了一些重复的数据,搜了下删除重复数据的方法。
N.B. 删除数据表的重复数据时,请先备份数据表。
方法一
# 保留主键 ID 较小的那条记录 DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name # 保留主键 ID 较大的那条记录 DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name
方法二
# 保留主键 ID 较大的那条记录 DELETE FROM NAMES WHERE id NOT IN (SELECT * FROM (SELECT MIN(n.id) FROM NAMES n GROUP BY n.name) x) # 保留主键 ID 较小的那条记录 DELETE FROM NAMES WHERE id NOT IN (SELECT * FROM (SELECT MAX(n.id) FROM NAMES n GROUP BY n.name) x)
P.S. 当数据表的数据量较多时,建议使用方法二,大大节省时间。
参考链接: