【发布时间】:2016-03-29 20:17:29
【问题描述】:
我正在使用 python/selenium 和 sqlite3 将网页上的位置保存到 sqlite3 数据库。一些位置包含单引号
例如伦敦约翰巷的玛丽维尔
我知道在本地创建数据库时,我必须使用两个单引号来转义这个。约翰的车道。 REF:- questions/603572/how-to-properly-escape-a-single-quote-for-a-sqlite-database 抓取网站时如何实现。
我的代码如下:-
# get locations
locs = browser.find_elements_by_class_name("meta")
for loc in locs:
if loc.text !="":
print loc.text
query += ",\'"+loc.text.replace(', ','-')+"\'"
我收到此错误是因为存在
cur.execute("INSERT INTO LOCATIONS VALUES("+query+");")
sqlite3.OperationalError: near "s": syntax error
我将完整地址保存到一个字段中。提前感谢您的帮助。
【问题讨论】:
-
不要将值转义和连接到 SQL,使用占位符:stackoverflow.com/a/1310001/2681632。周围已经有足够多的 SQL 注入了。