2010-09-15 22 views

Répondre

7

C'est une limite bien connue de l'urllib2 (et de l'urllib aussi). IMHO la meilleure tentative jusqu'à présent pour le réparer et le faire est coda_network de Garry Bodsworth pour Python 2.6 ou 2.7 - remplacement, versions corrigées de urllib2 (et d'autres modules) pour soutenir keep-alive (et un tas d'autres plus petits mais tout à fait correctifs de bienvenue).

+0

Alex, enfin une réponse directe sur celui-ci ('c'est' une 'limite bien connue'), La question subsiste cependant, pourquoi URLLib2 est-il écrit de cette façon? – sbartell

+1

@sbartell, parce que personne ne pensait que le problème était suffisamment important pour soumettre un correctif au code Python et le faire accepter - je ne l'ai pas fait, et vous non plus, et ainsi de suite pour des millions de personnes qui le feraient sans aucun doute si ** ils pensaient que le problème était important (en supposant qu'ils soient des citoyens décents de la communauté open-source, bien sûr, mais, hey, ne sommes-nous pas tous?). Je pense que Gary a pris la bonne approche en libérant une solution tierce afin que beaucoup d'expériences réelles sur le terrain puissent être accumulées dans une variété d'utilisations avant que les choses soient «gelées» dans la bibliothèque standard. –

3

Vous pouvez également consulter httplib2, qui prend en charge les connexions persistantes. Pas tout à fait le même que urllib2 (dans le sens où il ne fait que http et non "n'importe quel type d'URL"), mais plus facile que httplib (et aussi plus facile que urllib2 si vous voulez vraiment faire http).

+0

httplib les supporte, nous utilisons juste le même objet httpconnection. – sbartell

+0

Il me semble incroyable pourquoi urllib2 supporte cela. – sbartell