将爬虫数据插入SQL数据库是为什么出现重复?

用Scrapy框架写了个抓取京东手机评论的爬虫,在将评论数据往SQL数据库中插时出现了多条数据重复的问题图片描述

求大神解答!!!

阅读 5.9k
3 个回答

clipboard.png
将item定义到循环里面,scrapy自带多线程

因为数据库柄插入操作是次线程的,与主线程不同步,但是你传递给数据库柄的item 是引用传递,如果主线程中改变item的值了,那么次线程中的item也会改变,所以当数据库真正要插入第一条记录时,可能已经成了第三条记录了。前面两条记录就没有了。解决办法:将引用传递 修改成值传递,或者 生成多个item对象,每次yeild的item对象不是同一个。

你先看看是不是抓取到的数据本身就是重复的。
其次、看看你代码逻辑是不是有错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题