Как сохранить выходные данные Beautiful Soup в моей базе данных SQLite? - PullRequest
0 голосов
/ 30 апреля 2018

У меня запущена базовая веб-страница, и в течение недели я просмотрел некоторые температуры. Вывод на странице отображается идеально на веб-странице. Теперь я хочу ввести их в свою базу данных 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

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Я знаю, что на этот вопрос уже есть принятый ответ, который будет работать для ваших целей, но я просто хочу упомянуть, что вы всегда должны использовать параметры запроса, а не форматирование строк для создания операторов SQL с переменными. Так что вместо:

curs.execute("INSERT INTO your_table_name low_temp='{}'".format(low_temp))

Вы должны использовать:

curs.execute("INSERT INTO your_table_name low_temp=?", (low_temp,))

Документация подтверждает, что это путь:

Обычно для ваших операций SQL нужно использовать значения из Python переменные. Вы не должны собирать ваш запрос, используя строку Python операции, потому что это небезопасно; это делает вашу программу уязвимы для атаки SQL-инъекцией (см. https://xkcd.com/327/ для юмористический пример того, что может пойти не так).

Я понимаю, что для этой небольшой программы-примера это вряд ли что-то изменит, но лучше всего привыкнуть к хорошим привычкам.

0 голосов
/ 30 апреля 2018

Если вы хотите просто сохранить 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()

Я рекомендую вам прочитать некоторую документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...