Seite 1 von 1

Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 18:47
von pixewakb
Hi,

ich greife auf HTML-Seiten im Netz zu und hole mir von dort jeweils einen Wert.

Code: Alles auswählen

        # ...
        url = urllib.request.urlopen(url)
        source = str(url.read())
        url.close()
        # ...
Problem ist jetzt, dass nach geraumer Zeit, wo der Code wunderbar funktioniert hat, jetzt plötzlich Fehlermeldungen kommen. In der Konsole gibt es eine Reihe von Zeilen, die ausgespuckt werden, im Kern scheint aber die HTML-Seite nicht verarbeitbar zu sein:

Code: Alles auswählen

    raise ValueError("unknown url type: %s" % self.full_url)
ValueError: unknown url type: h
Ich habe noch keinen Plan, wie ich den Fehler umschiffen kann. Ich habe das jetzt erst einmal mit try-except abgefangen.

Zum Verständnis:

* Kann es sein, dass mich die Website erfasst und geblockt hat? Ich habe im Intervall von 5 Sekunden 7 Seiten bei denen geparst. Das scheint mir erst einmal kein Traffic zu sein...

Hinweise nehme ich gerne an...

Re: Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 18:48
von pixewakb
[s]OK. Fehler erkannt, Fehler gebannt.[/s]

[s]Ich hatte die Seite im Browser offen, dort scheint sie im Cache noch vorhanden gewesen zu sein. Ich bekam dort gerade einen Fehler, dass die Seite nicht mehr verfügbar ist...[/s]

Ich kann die Seiten im Browser aufrufen, nur mit Python nicht abrufen... Hinweise wären super.

Re: Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 18:49
von BlackJack
@pixewakb: Ich tippe mal darauf dass Du irgendwo eine Liste mit URLs übergeben möchtest, da aber eine einzelne URL als Zeichenkette übergibst. Lass Dir `url` doch mal vor dem herunterladen ausgeben.

Re: Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 18:50
von Hyperion
Also zum einen würde ich das Requests-Modul immer den `urllib`-Zeug aus der Standard-Lib vorziehen, zum anderen wäre es mal schön, ein lauffähiges Minimalbeispiel inkl. der Webseite zu sehen...

Re: Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 19:20
von pixewakb
http://docs.python-requests.org/en/latest/index.html#

Ich habe es direkt auf der Seite nicht gefunden? Python 2.7 oder 3.2???

Ich arbeite momentan gerne und mehrheitlich mit Python 3.2.

Re: Timeout-Fehler

Verfasst: Dienstag 18. September 2012, 19:26
von Hyperion
Ja, das könnte offensichtlicher sein, aber in de FAQs steht es: http://docs.python-requests.org/en/late ... unity/faq/

Python 3.x wird also unterstützt :-)