Хобрук: Ваш путь к мастерству в программировании

Как сохранить выходные данные Beautiful Soup в моей базе данных SQLite?

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

Ответы:


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,))

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

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

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

01.05.2018

2

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

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

30.04.2018
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..