
Завдання Python Створіть БД із двома полями – дата й час та температура. Відвідайте сайт із
погодою у вашому місті. Розпарсіть його та дістаньте інформацію про температуру. Внесіть відповідні дані до БД.

Ответы на вопрос

Ответ:
Для вирішення цього завдання нам знадобляться наступні бібліотеки Python:
requests - для отримання HTML-сторінки з погодою з веб-сайту
BeautifulSoup - для парсингу HTML-сторінки та отримання інформації про температуру
sqlite3 - для створення та роботи з базою даних SQLite
Спочатку створимо базу даних SQLite та таблицю з двома полями - дата/час та температура:
python
Copy code
import sqlite3
conn = sqlite3.connect('weather.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS weather
(date_time TEXT, temperature REAL)''')
conn.commit()
conn.close()
Далі, скористаємось бібліотекою requests для отримання HTML-сторінки з погодою з веб-сайту. Наприклад, якщо ми хочемо отримати погоду у Львові з сайту "https://ua.sinoptik.ua", ми можемо використати наступний код:
python
Copy code
import requests
url = 'https://ua.sinoptik.ua/погода-львів'
response = requests.get(url)
if response.status_code == 200:
html = response.content
else:
print('Не вдалося отримати сторінку')
Після отримання HTML-сторінки ми можемо скористатись бібліотекою BeautifulSoup для парсингу сторінки та отримання інформації про температуру. Наприклад, якщо ми хочемо отримати температуру зі сторінки для сьогоднішнього дня, ми можемо використати наступний код:
python
Copy code
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
today_weather = soup.find('div', {'class': 'weatherToday'}).find('div', {'class': 'temperature'}).text
today_temperature = int(today_weather.split('°')[0])
print(f"Температура сьогодні: {today_temperature}°C")
Знайдена температура тепер може бути внесена до бази даних SQLite за допомогою наступного коду:
import datetime
import sqlite3
# Отримання температури і збереження її до бази даних
temperature = today_temperature
date_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
conn = sqlite3.connect('weather.db')
c = conn.cursor()
c.execute("INSERT INTO weather VALUES (?, ?)", (date_time, temperature))
conn.commit()
conn.close()



Ответ:
бібліотеки requests, BeautifulSoup і sqlite3.
pip install requests
pip install beautifulsoup4
Далі, ми можемо написати код для створення бази даних та таблиці, яка буде містити дані про температуру:
import sqlite3
# Підключаємося до бази даних
conn = sqlite3.connect('weather.db')
# Створюємо таблицю
conn.execute('''CREATE TABLE IF NOT EXISTS temperature
(date TEXT, time TEXT, temperature REAL)''')
Після цього можна написати код, який відвідає сайт з погодою, розпарсить його та додасть інформацію про температуру до таблиці. У цьому прикладі ми використовуємо сайт з погодою для міста Київ:
import requests
from bs4 import BeautifulSoup
from datetime import datetime
# Завантажуємо сторінку з погодою
page = requests.get("https://ua.sinoptik.ua/погода-київ")
# Розбираємо HTML-код сторінки
soup = BeautifulSoup(page.content, 'html.parser')
# Знаходимо елемент, що містить інформацію про температуру
temperature = soup.find(class_='today-temp').get_text()
# Отримуємо поточну дату та час
now = datetime.now()
date = now.strftime("%Y-%m-%d")
time = now.strftime("%H:%M:%S")
# Заносимо дані про температуру до бази даних
conn.execute("INSERT INTO temperature (date, time, temperature) VALUES (?, ?, ?)", (date, time, temperature))
conn.commit()
# Закриваємо з'єднання з базою даних
conn.close()



Щоб виконати це завдання, вам знадобиться встановити деякі додаткові бібліотеки Python, такі як requests
і beautifulsoup4
. Переконайтеся, що у вас встановлені ці бібліотеки або встановіть їх за допомогою менеджера пакетів, такого як pip
.
Ось приклад коду, який допоможе вам отримати дані про температуру з веб-сторінки та зберегти їх у БД SQLite:
pythonimport requests
from bs4 import BeautifulSoup
import sqlite3
from datetime import datetime
# Встановити з'єднання з базою даних
connection = sqlite3.connect('weather.db')
cursor = connection.cursor()
# Створити таблицю, якщо вона не існує
cursor.execute('''CREATE TABLE IF NOT EXISTS weather_data
(date_time text, temperature real)''')
# Отримати дані з веб-сторінки з погодою
url = 'https://example.com/weather' # Ваш URL з погодою
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Знайти елемент з температурою і отримати її значення
temperature_element = soup.find('span', {'class': 'temperature'})
temperature = float(temperature_element.text.strip())
# Отримати поточну дату й час
current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# Вставити дані до бази даних
cursor.execute("INSERT INTO weather_data VALUES (?, ?)", (current_datetime, temperature))
connection.commit()
# Закрити з'єднання з базою даних
connection.close()
У коді вище замініть 'https://example.com/weather'
на URL сторінки з погодою вашого міста. Також, якщо ви використовуєте іншу базу даних, замініть рядок 'weather.db'
на шлях до вашої бази даних.
Цей код зберігає поточну дату й час, а також температуру з веб-сторінки погоди у таблицю weather_data
вашої бази даних.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili