在检查之前没有行插入之后插入scrapy数据

时间:2019-02-20 06:11:56

标签: python mysql insert scrapy mamp

在我学会了爬网并能够将数据插入mysql之后

Insert multiple Scrapy data into mysql

当我插入多个爬网数据时,我发现了另一个问题,因为冗余数据(重复数据)过多,mysql中的数据变大了

我试图使INSERT具有WHERE NOT EXIST条件,就像我在php中所做的那样,但在python中却无法正常工作

item1 = quote.css('h2.post-title > a::text').extract_first()
item2 = quote.css('div.entrytext > p::text').extract_first()
item3 = quote.css('div.up-bottom-border > p.postmetadata > 
a::text').extract()
items3 = ', '.join(item3)

这是我的SQL

mycursor.execute("INSERT INTO berita (judul, isi, tag) VALUES (%s, %s, %s) WHERE NOT EXISTS (SELECT judul FROM berita WHERE judul like '%s')", (item1, item2, items3, item1))

由于错误不断,我希望有人能帮助我

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT judul FROM berita WHERE judul like ''Tanah Longsor di K' at line 1

1 个答案:

答案 0 :(得分:0)

该错误与重复的引号有关。之所以会这样,是因为您为查询字符串中的最后一个变量添加了自己的val updatedLinuxScript引号。这些报价会自动添加,因此请删除它们:

String