这是一个创建于 2583 天前的主题,其中的信息可能已经有所发展或是发生改变。
问题是这样的,在 scrapy 中使用 pipeline 保存数据到 MySQL。
执行 SQL 语句例如
execute(
"""
INSERT INTO table_name(field1, field2, field3, field4)
VALUES(%s, %s, %s, %s)
""", % (item.name, item.age, item.sex, item.loc))
会提示 SYNTAX NEAR 'INSERT INTO table_name(filed1, fi\' 错误,这里的 SQL 会被提示折断。当修改 SQL 减少插入的字段数量以缩短单行文本长度后,BUG 又会莫名的小时。
每次运行 scrapy crawl 都会提示这样的错误信息,但是经过几次运行数据库居然也有了十几条数据。
请问有人遇到类似的问题吗,python 新手,如果问题实在太低端请轻喷。
2 条回复 • 2017-09-28 09:11:19 +08:00
|
|
1
shawndev 2017-09-28 01:14:10 +08:00
数据可以正常爬取并导出到 JSON 文件。打印过了抓取的网页也没有问题,目前怀疑是多行文本即 string literal 出了问题,对 python 不够熟悉还请高人指点。
|
|
|
2
flamepeak 2017-09-28 09:11:19 +08:00
不知道具体原因,我的代码给你看一下:
sql_insert = "insert into articles (category,tags,url,title,author) values (%s,%s,%s,%s,%s)" sql_insert_params = (category, item['tags'],item['link'],item['title'],item['author']) tx.execute(sql_insert, sql_insert_params)
多试几次吧
|