Werte aus HTML-Seite auslesen und in Log-Datei schreiben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Werte aus HTML-Seite auslesen und in Log-Datei schreiben

Beitrag von CountDracula » 13.02.2015 10:27:24

Hallo ihr!

Ich kenne mich mit sed, awk, cut, (...) noch nicht so gut aus und brauche (mindestens) einen Denkanstoß. Ich möchte aus einer Internetseite bestimmte Werte auslesen und in eine Datei schreiben.

In der HTML-Seite befindet sich unter anderem folgender Abschnitt:

Code: Alles auswählen

<tr> <td class='taleft' >1001</td> <td class='taleft' ></td> <td class='taleft' >Kekse</td> <td class='taleft' >1.000,00</td> <td class='taleft' >1.100,00</td> <td class='taleft' ></td> <td class='taleft' >1.100,00</td> <td class='taleft' ></td> </tr>
Daraus brauche ich die Werte:
  1. 1001
  2. Kekse
  3. 1.000,00
  4. 1.100,00
  5. 1.100,00
Der Abschnitt steht in einer sehr langen Zeile. Die Zeile kann ich mit grep ausgeben. Dass heißt ich brauche erst einmal eine Begrenzung um diesen Abschnitt dieser Zeile zu bekommen.

Anfangsbegrenzung:

Code: Alles auswählen

<tr> <td class='taleft' >1001</td>
Endbegrenzung:

Code: Alles auswählen

</tr>
Dazu kann ich sed benutzen, oder?
I am Dracula. I bid you welcome.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Werte aus HTML-Seite auslesen und in Log-Datei schreiben

Beitrag von Liffi » 13.02.2015 10:59:48

Ja, kannst du so machen.
Aber meine Empfehlung ist: Bitte nicht versuchen html per Hand zu parsen. Dann wird man verflucht[1].
Am besten ein Tool nehmen, das sich dafür eignet. Wenn du programmieren kannst rate ich z.B. mal zu beautiful soup für python.

[1]http://stackoverflow.com/questions/1732 ... ained-tags

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Werte aus HTML-Seite auslesen und in Log-Datei schreiben

Beitrag von detix » 13.02.2015 12:00:08

Vorrausgesetzt die Zeile sieht immer so aus, und die Formatierung folgt nur dort der class "taleft",
könnte es so klappen (die Zeile nach 5.txt gespeichert)

Code: Alles auswählen

awk -F"[<|>]" '/taleft/{print $5,$13,$17,$21,$29}' 5.txt
1001 Kekse 1.000,00 1.100,00 1.100,00
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: Werte aus HTML-Seite auslesen und in Log-Datei schreiben

Beitrag von CountDracula » 13.02.2015 22:02:19

@Liffi: Vielen Dank. Ich habe es mit Debianpython-bs4 und Debianpython-requests gebaut. :D

@detix: Danke dir :)
I am Dracula. I bid you welcome.

Antworten