Python urllib2与活着

ibz*_*ibz 43 python http urllib2 keep-alive

如何使用Python的urllib2创建"保持活跃"的HTTP请求?

msa*_*ers 34

使用urlgrabber库.这包括支持HTTP 1.1和keepalive的urllib2的HTTP处理程序:

>>> import urllib2
>>> from urlgrabber.keepalive import HTTPHandler
>>> keepalive_handler = HTTPHandler()
>>> opener = urllib2.build_opener(keepalive_handler)
>>> urllib2.install_opener(opener)
>>> 
>>> fo = urllib2.urlopen('http://www.python.org')
Run Code Online (Sandbox Code Playgroud)

注意:您应该使用urlgrabber版本3.9.0或更早版本,因为版本3.9.1中已删除了keepalive模块

Python 3 有一个keepalive模块的端口.

  • [我为python 3制作的快速端口.](http://pastie.org/2388246)希望能帮助某人. (2认同)

Pio*_*ost 13

尝试urllib3,它具有以下功能:

  • 为多个请求重用相同的套接字连接(HTTPConnectionPool和HTTPSConnectionPool)(使用可选的客户端证书验证).
  • 文件发布(encode_multipart_formdata).
  • 内置重定向和重试(可选).
  • 支持gzip和deflate解码.
  • 线程安全且安全.
  • 简单易懂的代码库,非常适合扩展和构建.有关更全面的解决方案,请查看请求.

或更全面的解决方案 - 请求 - 支持从0.8.0 版本保持活动(通过内部使用urllib3)并具有以下功能:

  • 非常简单的HEAD,GET,POST,PUT,PATCH,DELETE请求.
  • Gevent支持Asyncronous Requests.
  • Cookie持久性的会话.
  • 基本,摘要和自定义身份验证支持.
  • 字典的自动表单编码
  • 用于请求/响应cookie的简单字典界面.
  • 多部分文件上传.
  • 自动解码Unicode,gzip和deflate响应.
  • 完全支持unicode URL和域名.


Mar*_*ark 7

或者查看httplib的HTTPConnection.

  • 如何为HTTPConnection启用keep-alive?我尝试向请求和响应头添加`Connection:Keep-Alive`,但`httplib`仍然在每个请求上重新连接 (3认同)

jwa*_*att 5

很遗憾,在urlgrabber更改为依赖pycurl(支持keep-alive)后,keepalive.py于2009年9月25日通过以下更改从urlgrabber中删除:

http://yum.baseurl.org/gitweb?p=urlgrabber.git;a=commit;h=f964aa8bdc52b29a2c137a917c72eecd4c4dda94

但是,您仍然可以在此处获取keepalive.py的最新修订版:

http://yum.baseurl.org/gitweb?p=urlgrabber.git;a=blob_plain;f=urlgrabber/keepalive.py;hb=a531cb19eb162ad7e0b62039d19259341f37f3a6