Webscraping bei lokaler HTM Seite
Verfasst: Samstag 15. Juli 2023, 11:35
Guten Tag liebes Forum,
ich habe eine Solarsteuerung, welcher ich eine HTML Datei füttern kann und diese die dann innerhalb des Heimnetzwerkes anzeigt. Ich erreiche die Website dann über die IP: http://192.168.178.170/GRAFIK.htm und sehe dort verschiedenste Sensorwerte, sowie ein bisher recht provisorisches Bild von meiner Anlage. Da ich mir die Daten nun unter anderem in einer Datenbank speichern möchte, wollte ich mir einen kleinen Webscraper basteln. Mein Problem dabei ist jetzt jedoch, dass ich mit meinem Webscraper nicht das ausgegeben bekomme was ich auf der Website sehe, sondern nur Konfigurationen...
Wie komme ich an die Sensordaten?
Hier einmal ein Bild von der Website:
Und hier der Code von meinem Webscraper:
Als Ergebnis erhalte ich:
Und darin sind die Sensordaten nicht vorhanden...
Ich hoffe ihr könnt mit meiner Beschreibung etwas anfangen
ich habe eine Solarsteuerung, welcher ich eine HTML Datei füttern kann und diese die dann innerhalb des Heimnetzwerkes anzeigt. Ich erreiche die Website dann über die IP: http://192.168.178.170/GRAFIK.htm und sehe dort verschiedenste Sensorwerte, sowie ein bisher recht provisorisches Bild von meiner Anlage. Da ich mir die Daten nun unter anderem in einer Datenbank speichern möchte, wollte ich mir einen kleinen Webscraper basteln. Mein Problem dabei ist jetzt jedoch, dass ich mit meinem Webscraper nicht das ausgegeben bekomme was ich auf der Website sehe, sondern nur Konfigurationen...
Wie komme ich an die Sensordaten?
Hier einmal ein Bild von der Website:
Und hier der Code von meinem Webscraper:
Code: Alles auswählen
import requests
from bs4 import BeautifulSoup
def scrapeInformation():
# Website BL-Net
url = "http://192.168.178.170/GRAFIK.htm"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup)
Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"/><meta content="0" http-equiv="expires"/><style type="text/css">body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat;} #g {position: relative;}#pa {top: 0px; left: 0px; position: absolute;}#p {top: 0px; left: 0px; position: absolute;} </style><script type="text/javascript">function sd (){document.title = this.data.Title; document.getElementById("g").style.width = this.data.Width; document.getElementById("g").style.height = this.data.Height; document.getElementById("pa").style.width = this.data.Width;document.getElementById("pa").style.height = this.data.Height;document.getElementById("p").src = this.data.GraphicFile; var rT = this.data.AutoRefreshTime; if(rT>29)window.setInterval("javascript:this.data.location.reload()", rT*1000); var rlt = this.data.RefreshLink;if(rlt!="") {var rL = document.createElement('a');rL.href="javascript:this.data.location.reload()"; rL.appendChild(document.createTextNode(rlt)); document.getElementById("rld").appendChild(rL);}} </script></head><body onload="sd ()"> <div align="center"><div id="g"> <img border="0" id="p" src=""/> <iframe allowtransparency="yes" frameborder="0" id="pa" name="data" scrolling="no" src="GRAFIK1.htm"></iframe></div></div><div align="center" id="rld"></div></body></html>
Ich hoffe ihr könnt mit meiner Beschreibung etwas anfangen