Bekomme komischerweise immer eine Dauerschleife:
Code: Alles auswählen
....
for line in url:
pos = line.find("href")
while (pos != -1):
pos2 = line[pos+6:].find("\"")
print line[pos+6:pos+6+pos2]
#file.write(line[pos+6:pos+6+pos2])
#file.write("\n")
pos = line[pos+6:].find("href")
....
Aber ich weiß nicht wieso?
Wenn die Methode find() nichts findet, gibt sie den Wert "-1" zurück.
Der Code ist - denke ich mal - selbsterklärend:
- Ein Quelltext wird Zeile für Zeile durchgefiltert und nach html-Links durchsucht
- Wenn in einer Zeile ein href gefunden wurde, wird der abschließende " gesucht
- Somit habe ich die Anfangsposition (pos) und die Endposition (pos2) des Linkes und kann ihn denn per ...[pos:pos2] ausgeben
Nun kommen wir zum eigentlichen Grund der Schleife: Wenn er ein Link gefunden hat, soll er ja nicht aufhören sondern in der Zeile weitersuchen, denn rechts vom Link könnten ja noch mehr Links stehen. Deshalb soll er die ganze suche nochmal machen bloß nicht wieder von anfangan sondern von der Position an, wo der letzte Link geendet hat also pos2. So soll er die Links von links nach rechts abfrühstücken bis die Suche irgendwann "-1" returnt (wenn kein Link mehr in der Zeile ist) und dann die Schleife verlassen.
Doch leider funktioniert ddas so nciht und ich weiß nciht warum.
Er gibt mir irgendwie die ein und selbe quelltext-codestelle (noch nciht mal erklärlich warum die) aus und wiederholt diese endlos.