bin ganz frisch in der Welt von Python angekommen. Bislang konnte ich meine kleinen Scripte immer mit einer Online Suche zusammenbasteln.
Jetzt würde ich mich gerne mal an ein etwas größeres Projekt trauen, das mir aber täglich Arbeit abnehmen würde.
Zur Situation:
Ich habe bei Kunden ein Embedded Device stehen, das jeweils über eine Webseite Informationen in Form einer Tabelle bereitstellt, die ich Täglich (einmal) abfragen und in eine Tabelle tragen muss.
Wie man sich denken kann ist das eine ziemlich nervige Aufgabe, die ich gerne automatisieren würde.
Wunsch:
Ein kleines Script, dass per Cron jeden Morgen die Daten von den Geräten ausliest und in eine Tabelle schreibt.
Status:
Ich habe inzwischen herausgefunden, wie ich die Webseiten in Python einlesen kann.
Code: Alles auswählen
class AppURLopener(urllib.request.FancyURLopener):
version = "Mozilla/5.0"
opener = AppURLopener()
response = opener.open('<ip eines Gerätes>')
for line in response:
print(line) # Debug
Als Ergebnis erhalte ich jetzt den HTML Code der Seite. Aber wie kann ich in dieser Seite jetzt die Tabelle finden und wie kann ich die Daten daraus auslesen? Ist es ein Problem, dass die Seiten je nach Standort unterschiedlich aussehen und sich die Tabellen an unterschiedlichen Positionen im Code befinden?
Hier mal ein Beispiel für so eine Tabelle:
Code: Alles auswählen
<div id="table">
<ul id="table">
<li class="x">
<a href="__System URL__" class="type_url" title="__System Bezeichnung__">
<span class="type">
__auszulesender Typ__
</span>
<span class="value">
__auszulesender Wert__
</span>
</a>
</li>
<li class="x">
<a href="__System URL__" class="type_url" title="__System Bezeichnung__">
<span class="type">
__auszulesender Typ__
</span>
<span class="value">
__auszulesender Wert__
</span>
</a>
</li>
<li class="x">
<a href="__System URL__" class="type_url" title="__System Bezeichnung__">
<span class="type">
__auszulesender Typ__
</span>
<span class="value">
__auszulesender Wert__
</span>
</a>
</li>
...
</ul>
</div>
Scheint hier ja schon einige (und irgend wie immer Anfänger ) zu geben, schon ein ähnliches Problem hatten aber auf deren Fragen es bislang keine für mich adaptierbare Antwort zu geben scheint.
viewtopic.php?f=1&t=37095&p=284040&hili ... en#p284040
viewtopic.php?f=7&t=34536&p=262972&hili ... en#p262972 --> könnte die hier angesprochene `lxml.html` bei meinem Problem hilfreich sein?
So, jetzt wo ich fertig bin frage ich mich gerade ob das nicht etwas zu lang geworden ist. Ich hoffe einfach mal auf Antworten
[EDIT 1]
Habe gerade diese Seite gefunden: viewtopic.php?f=1&t=25781&p=194169&hili ... en#p194169
Anscheinend sind `BeautifulSoup` und `lxml.html` die richtigen Bibliotheken.
[EDIT 2]
Dann dürfte das die passende Doku für lxml.html sein: http://lxml.de/lxmlhtml.html
Gibt es die auch auf Deutsch?