在Python中构建和发送http请求的建议方法是什么?

时间:2014-11-19 10:48:35

标签: python xmlhttprequest

我写了一个大约1岁的小模块 当我试图为它添加一些功能时,我发现python的urllib有一个很大的变化,我对如何构建请求感到困惑。

在旧模块中FancyURLopener被用作我的基类,但我发现它是从版本3.3开始不推荐使用。

所以我再次阅读该文档,并尝试构建请求而不是开启者。

但是,当我尝试添加标头时,只提供了一个函数Request.add_header(key, val)。我从fiddler那里复制了这样的标题:

GET some_url HTTP/1.1
Host: sosu.qidian.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-cn,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: anothe_url
Cookie: a lot of data
Connection: keep-alive

所以我必须逐个将它们添加到请求中吗?

我还发现了另一个开放者urllib.request.build_opener(),可以一次添加很多标题。但我无法设置方法' get'或者'发布'。

我是python的新手,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,在Python中发出http请求的最佳方法是安装和使用此模块:
http://docs.python-requests.org/en/latest/

您可以编写如下代码:

headers = {
    'X-Requested-With': 'XMLHttpRequest',
    'Referer': 'anothe_url',
    # etc
}
response = requests.get(some_url, headers=headers)

http://docs.python-requests.org/en/latest/user/quickstart/#custom-headers