Seite 1 von 1

zwei Fragen zu FancyURLopener

Verfasst: Freitag 21. Dezember 2007, 20:59
von SaltyWater
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?

Re: zwei Fragen zu FancyURLopener

Verfasst: Freitag 21. Dezember 2007, 22:22
von Leonidas
SaltyWater hat geschrieben:Kann man FancyURLopener eigentlich auch dazu bringen dem <meta http-equiv="refresh"...> zu folgen oder muss man das selber basteln??
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.

Verfasst: Samstag 22. Dezember 2007, 18:27
von SaltyWater
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?

Verfasst: Samstag 22. Dezember 2007, 19:04
von Nicht_zu_definieren
Spricht etwas dagegen urllib.URLopener statt urllib.FancyURLopener zu verwenden um die 30x status meldungen abzufangen?

EDIT:

Code: Alles auswählen

import urllib

opener = urllib.URLopener()
try:
    opener.open('http://google.com')
except IOError, e:
    print e[3].values()

Verfasst: Samstag 22. Dezember 2007, 19:33
von SaltyWater
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