我尝试使用Python和BeautifulSoup来获取一些web信息,对其进行迭代,然后将一些片段插入到sqlite3db中。但我一直在想这个错误:
文件“/Users/Chris/Desktop/BS4/TBTfile.py文件“,第103行,TBT格式 c、 执行(项) sqlite3.OperationalError:靠近“s”:语法错误
同样的代码可以在非常相似的scraper上正常工作,并且不会抛出这些错误。以下是部分内容:
listicle.append("INSERT INTO headlines (heds, url, image_loc, time, source) VALUES ('" + TBTheadline + "', '" + TBTurl + "', '" + imageName + "', '" + TBTpostDate + "', '" + source + "')")
else:
print "TBT item already in database"
print listicle
for item in listicle:
c.execute(item)
conn.commit()
row = c.fetchall()
print "This has been inserted succcessfully: ", item
您正在将收集的数据连接到SQL语句中。千万不要这样做,这是mother of all anti-patterns。除了您所看到的问题(可能是由于被刮取的HTML中的'或类似字符),您的代码中存在一个巨大的安全漏洞(在您的情况下可能无关紧要)。在
不管怎样,} 。对你来说
sqlite3
有一个很好的方法来做你想要的事情:^{相关问题 更多 >
编程相关推荐