Ich möchte nur eine bessere Vorstellung von dem, was hier vor sich geht, ich kann natürlich das Problem umgehen, indem ich urllib2 benutze.
%Vor% Ссылка zeigt diesen Code in Aktion mit der Ausnahme / stacktrace. foo.headers
und foo.read()
funktionieren einwandfrei
[email protected] ~ $ : curl -I "http://www.crutchfield.com/S-pqvJFyfA8KG/p_15410415/Dynamat-10415-Xtreme-Speaker-Kit.html"
Danke.
Dieser Server ist sowohl nicht-deterministisch als auch empfindlich gegenüber der HTTP-Version. urllib2
ist HTTP / 1.1, urllib
ist HTTP / 1.0. Sie können dies reproduzieren, indem Sie curl --http1.0 -I "http://www.crutchfield.com/S-pqvJFyfA8KG/p_15410415/Dynamat-10415-Xtreme-Speaker-Kit.html"
mehrmals hintereinander ausführen. Sie sollten die Ausgabe curl: (52) Empty reply from server
gelegentlich sehen; Das ist der Fehler urllib
meldet. (Wenn Sie die Anfrage einige Male mit urllib erneut ausgeben, sollte dies manchmal erfolgreich sein.)
Ich habe das Problem gelöst. Ich benutze jetzt einfach die urrlib anstelle von urllib2 und alles funktioniert gut, danke euch allen:)