Moin.
Ich hab da mal zwei Fragen.
Kann man FancyURLopener eigentlich auch dazu bringen dem <meta http-equiv="refresh"...> zu folgen oder muss man das selber basteln??
Und dann nimmt FancyURLopener ja bei HTTP-Response 30x auch die neue "Location:" "to fetch the actual URL". Das ist einerseits zwar schön, dass ich trotz eines Fehler bekomme, was ich haben möchte, aber wie mache ich das denn am besten, dass ich jetzt auch von dieser neuen URL erfahre bevor es für meine alte irgendwann nur noch die 404-Seite gibt?
zwei Fragen zu FancyURLopener
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Soweit ich weiß nicht, denn das erfordert, dass man den Inhalt der Seite parst und das erfordert wiederrum einen HTML-Parser, was sich außerhalb des von der urllib abgedeckten befindet.SaltyWater hat geschrieben:Kann man FancyURLopener eigentlich auch dazu bringen dem <meta http-equiv="refresh"...> zu folgen oder muss man das selber basteln??
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 10
- Registriert: Montag 10. Dezember 2007, 11:37
yo, danke. lag ja eigentlich auf der hand. wäre ja sonst wohl auch default wie das übernehmen der neuen location von 30x-response.
ist allerdings auch leicht mit umzugehen.
um die neuen locations aus den 30x-responses zu bekommen muss man aber wohl alles selber machen mit HTTPConnection, oder?
ist allerdings auch leicht mit umzugehen.
um die neuen locations aus den 30x-responses zu bekommen muss man aber wohl alles selber machen mit HTTPConnection, oder?
-
- User
- Beiträge: 21
- Registriert: Freitag 21. April 2006, 17:01
- Kontaktdaten:
Spricht etwas dagegen urllib.URLopener statt urllib.FancyURLopener zu verwenden um die 30x status meldungen abzufangen?
EDIT:
EDIT:
Code: Alles auswählen
import urllib
opener = urllib.URLopener()
try:
opener.open('http://google.com')
except IOError, e:
print e[3].values()
-
- User
- Beiträge: 10
- Registriert: Montag 10. Dezember 2007, 11:37
hmm.
mal testen. in der dkou steht if connection cannot be made... auf server-ebene ist 30x o.ä. ja auch ne connection. nur das man halt nicht bekommt, was man haben will. na ja.
danke
mal testen. in der dkou steht if connection cannot be made... auf server-ebene ist 30x o.ä. ja auch ne connection. nur das man halt nicht bekommt, was man haben will. na ja.
danke