Предмет: Информатика, автор: arsensolovej456

Завдання Python

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

Ответы

Автор ответа: vimervimer590
0

Ответ:

бібліотеки 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()

Автор ответа: artskron
1

Ответ:

Для вирішення цього завдання нам знадобляться наступні бібліотеки 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()

Похожие вопросы
Предмет: Алгебра, автор: main01928833