关于 scrapy 使用 twisted.enterprise.adbapi 执行 SQL 的问题。

2017-09-28 01:11:03 +08:00
 shawndev
问题是这样的,在 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 新手,如果问题实在太低端请轻喷。
2862 次点击
所在节点    Python
2 条回复
shawndev
2017-09-28 01:14:10 +08:00
数据可以正常爬取并导出到 JSON 文件。打印过了抓取的网页也没有问题,目前怀疑是多行文本即 string literal 出了问题,对 python 不够熟悉还请高人指点。
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)

多试几次吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX