我有一个基本的网页正在运行,我已经在网上刮了一周的温度。页面上的输出在网页上显示完美。我现在想将这些输入到我的SQLite3数据库中。我试过找一些教程但找不到任何明确的教程。有人能引导我走正确的道路吗?
提前致谢。
def weather_():
page = requests.get("https://www.bbc.co.uk/weather/0/2643743")
soup = BeautifulSoup(page.content, 'html.parser')
today = soup.find('div',{'data-component-id' : 'forecast'})
temp = today.find(class_ = 'wr-day-temperature')
low_temp = (temp.get_text())
return low_temp
答案 0 :(得分:1)
我知道这个问题已经有了一个可以接受的答案,但是我只想提一下,你应该总是使用查询参数而不是字符串格式来创建带变量的SQL语句。所以而不是:
curs.execute("INSERT INTO your_table_name low_temp='{}'".format(low_temp))
您应该使用:
curs.execute("INSERT INTO your_table_name low_temp=?", (low_temp,))
documentation确认这是要走的路:
通常,您的SQL操作需要使用Python中的值 变量。您不应该使用Python的字符串汇编查询 因为这样做是不安全的;它使你的程序 容易受到SQL注入攻击(请参阅https://xkcd.com/327/) 什么可能出错的幽默例子。)
我意识到,对于这个小例子程序,它不太可能有任何区别,但最好养成良好的习惯。
答案 1 :(得分:0)
如果您只想将low_temp
存储在数据库中,请执行简单的SQL插入
import sqlite3
conn = sqlite3.connect('your_database.sqlite3', check_same_thread=False)
curs = conn.cursor()
curs.execute("INSERT INTO your_table_name low_temp='{}'".format(low_temp))
conn.commit()
我建议你阅读一些documentation