61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import requests
|
||
|
from bs4 import BeautifulSoup
|
||
|
import sqlite3
|
||
|
|
||
|
# URL der HTML-Seite, die Sie abrufen möchten
|
||
|
url = "http://localhost:5010"
|
||
|
|
||
|
# HTTP-Anfrage senden und den HTML-Inhalt abrufen
|
||
|
response = requests.get(url)
|
||
|
html = response.text
|
||
|
|
||
|
# HTML-Dokument in BeautifulSoup-Objekt umwandeln
|
||
|
soup = BeautifulSoup(html, 'html.parser')
|
||
|
|
||
|
# Die Daten in der Tabelle extrahieren
|
||
|
table = soup.find('table')
|
||
|
rows = table.find_all('tr')
|
||
|
|
||
|
# Initialisieren der Tanknummern mit 1 und 2
|
||
|
tank1_nummer = 1
|
||
|
tank2_nummer = 2
|
||
|
|
||
|
# SQLite-Datenbankverbindung herstellen
|
||
|
db_path = '/home/divers/datenbank/temperaturen.db'
|
||
|
conn = sqlite3.connect(db_path)
|
||
|
cursor = conn.cursor()
|
||
|
|
||
|
# Funktion zum Einfügen von Tanknummern und Temperaturwerten in die Datenbank
|
||
|
def insert_temperature(table_name, tanknummer, temperatur):
|
||
|
cursor.execute(f"INSERT INTO {table_name} (messstelle, temperatur) VALUES (?, ?)",
|
||
|
(tanknummer, temperatur))
|
||
|
conn.commit()
|
||
|
|
||
|
# Daten in die Datenbank eintragen (Tabelle "istwert")
|
||
|
for row in rows[1:-1]:
|
||
|
columns = row.find_all('td')
|
||
|
if len(columns) >= 3:
|
||
|
tank_name = columns[0].text
|
||
|
istwert_text = columns[1].text.strip() # Temperaturwert ohne Leerzeichen am Anfang/Ende
|
||
|
if istwert_text: # Nur wenn die Zeichenfolge nicht leer ist
|
||
|
istwert = float(istwert_text.split('°')[0]) # Extrahieren des Istwertes und Konvertieren in Float
|
||
|
tank_nummer = int(tank_name.split()[-1]) # Extrahieren der Tanknummer aus dem Namen
|
||
|
insert_temperature("istwert", tank_nummer, istwert)
|
||
|
|
||
|
# Daten in die Datenbank eintragen (Tabelle "sollwert")
|
||
|
for row in rows[1:-1]:
|
||
|
columns = row.find_all('td')
|
||
|
if len(columns) >= 3:
|
||
|
tank_name = columns[0].text
|
||
|
sollwert_text = columns[2].text.strip() # Temperaturwert ohne Leerzeichen am Anfang/Ende
|
||
|
if sollwert_text: # Nur wenn die Zeichenfolge nicht leer ist
|
||
|
sollwert = float(sollwert_text.split('°')[0]) # Extrahieren des Sollwertes und Konvertieren in Float
|
||
|
tank_nummer = int(tank_name.split()[-1]) # Extrahieren der Tanknummer aus dem Namen
|
||
|
insert_temperature("sollwert", tank_nummer, sollwert)
|
||
|
|
||
|
# Die Datenbankverbindung schließen
|
||
|
conn.close()
|
||
|
|