【问题标题】:Full control over HTTP headers in Python?完全控制 Python 中的 HTTP 标头?
【发布时间】:2012-09-17 11:22:11
【问题描述】:

是否有任何 Python HTTP 库可以帮助模仿一种流行的网络浏览器并支持 HTTPS?我想定义 HTTP 标头的顺序,每个确切标头的存在,cookie 值的顺序 - 与浏览器的“指纹”相关的所有内容。我们需要它来测试特定的 Web 服务器。

【问题讨论】:

  • 对于httplib,如果不加headers,header会不会包含你不想要的东西?

标签: python http http-headers


【解决方案1】:

httplib.request 将采用 OrderedDict 作为标题。某些标头将自动添加以符合协议,如果您在提供的标头中指定它们,这些标头将被忽略。

查看putheader_send_request 方法,如果它们的行为不符合您的目的,您可以覆盖它们。

>>> import httplib
>>> from collections import OrderedDict
>>> h = OrderedDict(('X-A','a'),('X-B','b'),('X-C','c'))
>>> c = httplib.HTTPConnection('localhost')
>>> c.set_debuglevel(1)
>>> r = c.request('GET','/','',h)
send: 'GET / HTTP/1.1\r\nHost: localhost\r\nAccept-Encoding: identity\r\nX-A: a\r\nX-B: b\r\nX-C: c\r\n\r\n'

【讨论】:

  • httplib 也有一些HTTPS 支持。
【解决方案2】:

查看Requests,它非常易于使用并且拥有您所需要的一切。 或者,您可以使用 Selenium

从 Python 驱动 Web 浏览器本身

【讨论】:

  • 您的一个链接似乎来自您的本地网络。好吧,至少我无法访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2013-06-18
相关资源
最近更新 更多