http://blog.csdn.net/pipisorry/article/details/48086195
requests简介
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,但是python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。
Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。
requests的功能特性
Requests 完全满足如今网络的需求:
国际化域名和 URLs
Keep-Alive & 连接池
持久的 Cookie 会话
类浏览器式的 SSL 加密认证
基本/摘要式的身份认证
优雅的键/值 Cookies
自动解压
Unicode 编码的响应体
多段文件上传
连接超时
支持 .netrc
适用于 Python 2.6—3.4
线程安全
requests和python自带urllib的对比
py2:
#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 gh_url = 'https://api.github.com' req = urllib2.Request(gh_url) password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm() password_manager.add_password(None, gh_url, 'user', 'pass') auth_manager = urllib2.HTTPBasicAuthHandler(password_manager) opener = urllib2.build_opener(auth_manager) urllib2.install_opener(opener) handler = urllib2.urlopen(req) print handler.getcode() print handler.headers.getheader('content-type') # ------ # 200 # 'application/json'
requests:
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests r = requests.get('https://api.github.com', auth=('user', 'pass')) print r.status_code print r.headers['content-type'] # ------ # 200 # 'application/json'
requests使用举栗
安装
pip install requests
基本使用
>>>import requests >>> r = requests.get(‘http://www.****.com‘) # 发送请求 >>> r.status_code # 返回码 200 >>> r.headers[‘content-type‘] # 返回头部信息‘text/html; charset=utf8‘ >>> r.encoding # 编码信息‘utf-8‘ >>> r.text #内容部分(如果存在编码问题,也可以使用r.content) u‘<!DOCTYPE html>\n<html xmlns="http://www.***/xhtml"...‘...
各种不同HTTP请求
>>> r = requests.post("http://httpbin.org/post") >>> r = requests.put("http://httpbin.org/put") >>> r = requests.delete("http://httpbin.org/delete") >>> r = requests.head("http://httpbin.org/get") >>> r = requests.options("http://httpbin.org/get")
带参数的请求
>>> payload = {‘wd‘: ‘张亚楠‘, ‘rn‘: ‘100‘} >>> r = requests.get("http://www.baidu.com/s", params=payload) >>> print r.url u‘http://www.baidu.com/s?rn=100&wd=%E5%BC%A0%E4%BA%9A%E6%A5%A0‘
Note: 这里的params可以不用自己进行urlencode的。
获取json结果
>>>r = requests.get(‘...‘) >>>r.json()[‘data‘][‘country‘] ‘中国‘
python3 httplib2
不过小编皮皮告诉大家另一种python3的简洁网络请求之道
import httplib2 h = httplib2.Http(".cache") h.add_credentials('user', 'pass') r, content = h.request("https://api.github.com", "GET") print r['status'] print r['content-type']
Note: 也是等同requests的几行代码啊![urllib2 vs requests]
from:http://blog.csdn.net/pipisorry/article/details/48086195
版权声明:本文为博主http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载。