Zeichenketten & Variablen in Python

In diesem Beitrag geht es um Zeichenketten und Variablen in Python.

Aufgabe: Wir wollen Zeichenketten auseinander nehmen und diese einzeln ausgeben lassen. Im HTML Code der folgenden Webseite ist ein Preis integriert, den wir aus dem Quelltext in eine Variable importieren möchten.

import urllib.request 
seite = urllib.request.urlopen("http://domain.de")
text = seite.read().decode("uft8")
print(text)

Das jetzige Programm gibt uns lediglich den Quellcode der angeforderten Webseite. Es wird der Quelltext 1:1 ausgegeben, mit HTML-Tags. Der Quelltext ist hier in der Variable „text“ gespeichert.

Um an den Preis zu kommen, müssen wir uns mit der Verarbeitung von Strings/Zeichenketten in Python auskennen.

Eine Zeichenkette ist eine Liste aus Zeichen, in der jedes Zeichen eine bestimmte Position zugewiesen bekommt. Diese Position heißt „index“.

Wie findet man bestimmte Zeichen in einer langen Zeichenkette?

Um bestimmt Zeichen einer Zeichenkette auszugeben, gibt man die Variable in Kombination mit dem Index in eckigen Klammern an.

// text = Hallo

print(text[1])

// Ausgabe ist "a"

Um mehrere Zeichen auszugeben muss folgendes angegeben werden:
s = „Der Wilde im Walde!“

print(s[4:8]) // Wild
print(s[10:12]) // im
print(s[13:17]) // Wald

s[a:b] // a ist das erste Zeichen | b das erste Zeichen welches nicht mehr ausgegeben wird

Unser „b-a“ gibt die Länge der Zeichenkette an.

Da sich die Webseite regelmäßig ändern kann, ist es sinnvoll die Problematik anders zu lösen. Die schlechte Lösung wäre es natürlich, einfach den Index jedes mal neu anzupassen. Die gute Lösung ist folgende.

Neues Beispiel für die Problematik: s = „<strong>$5.69</strong>“

Wir suchen im Text einfach nach „>$“ um die genaue Position des Preises dynamisch zu ermitteln. Diese Suche lässt sich durch eine „while“-Schleife realisieren. Diese durchsucht einfach unseren kompletten Quellcode in Zweierblöcken nach dem String „>$“, da der Preis immer mit diesen zwei Zeichen anfängt. In HTML Code lässt sich auch sehr gut nach ID´s suchen, da auch diese einmalig sind.

Da das Durchsuchen von Zeichenketten eine Grundlegende Funktion von Python ist, gibt es eine solche Funktion schon fest eingebaut in Python.

Wie benutzen dazu folgenden Quellcode:

wo = s.find(">$")
print(s[wo+2:wo+6])

Damit geben wir quasi unseren Preis dynamisch aus, egal an welcher Stelle dieser steht. Der Preis wird auch weiterhin ausgegeben, wenn sich der Quellcode der Webseite ändert.

Marvin Sengera

Hey! Ich bin Marvin Sengera, Inhaber der Internetagentur "Binärfabrik" aus Paderborn. Ich habe mein Bachelorstudium Informatik mit Schwerpunkt Industriespionage an der Hochschule Hamm Lippstadt abgeschlossen und absolviere derzeit meinen Master in Fachrichtung "Technical Entrepreneurship and Innovation". Ich beschäftige mich rund um die Themen Informatik, Innovation & Unternehmensgründung.

Das könnte dich auch interessieren …

Schreibe einen Kommentar