Oweh, gleich kommt der Fanclub der geschweiften Klammer...
Erst rattert die erste Schleife durch und es wird sinnlos die Länge der
Datei berechnet:
1 | for Shopname in fobj:
|
2 | line_count = len(fobj.readlines())
|
Das funktioniert aber nicht, da man readlines() nicht sinnvoll zweimal
auf der gleichen Datei aufrufen darf.
Weil readlines() den Filepointer aufs Ende setzt, ist die for-Schleife
nach dem ersten Mal vorbei und Shopname behält den Wert der ersten
Zeile.
Jetzt wird für jedes Zeichen in Shopname die folgende Schleife
aufgerufen:
1 | for ergebnis in Shopname:
|
2 | print(Shopname.rstrip())
|
3 | soup = BeautifulSoup (urlopen("http:/ .......
|
4 | results = soup.find_all("li", {"class": "lvprice"})
|
5 | for result in results:
|
6 | result1 = result.get_text().strip()
|
7 | result1 = result1.replace('EUR',' ')
|
8 | list_price_de.append(result1)
|
9 | print (result1)
|
Die Variable ergebnis kommt gar nicht vor. Je nachdem, wie viele Zeichen
Shopname hat, wird diese Schleife also mit gleichem Inhalt+Ergebnis
wiederholt.
Wie der Lehrer schrieb: Ohne ein paar Grundlagen geht es nicht. Das
Zusammenkopieren von unverstandenen Beispielen überlässt man besser den
12jährigen PHP-Programmierern.
Wenn Schleifenkonstruktionen etc. nicht klar sind, erstmal alles
überflüssige (beautifulsoup) rauswerfen und Minimalbeispiele mit print
bauen. Bevor print nicht das gewünschte ausgibt, muss man an urlopen gar
nicht denken.
1 | #!/usr/bin/python3
|
2 | fobj = open('zeilen.txt', 'r')
|
3 | for line in fobj:
|
4 | print('in der Schleife: ' + line.strip())
|
5 | foo = fobj.readlines() # diese Zeile mal auskommentieren
|
6 | # Welchen Wert hat line jetzt?
|
7 | print('Ende:' + line.strip())
|
Bevor man den Onlinehandel revolutioniert, erstmal ein paar
Python-Tutorials durcharbeiten und verstehen. Mindestens die Schleifen
muss man verstanden haben, wenn man irgendwas machen will, das über
Hello World hinausgeht.