requests 模块
requests 继承了 urllib2 的所有特性。requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码
requests 的底层实现其实就是 urllib3
- request.get
# headers---->请求头的字典 params---->url请求参数的字典
# auth---->如果是Web客户端验证,需要添加 auth = (账户名, 密码)
requests.get(url, params, headers, auth)
# 查看响应内容,response.text 返回的是Unicode格式的数据
response.text # <type 'unicode'>
# 查看响应内容,response.content 返回的字节流数据
print respones.content # <type 'str'>
print response.url
print response.encoding
print response.status_code
- request.post
response = requests.post(url, data, headers)
# 如果是json文件可以直接显示
print response.json()
- 代理(proxies参数)
- 如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求
- 也可以通过本地环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理
export HTTP_PROXY = "http://12.34.56.79:9527"
export HTTPS_PROXY = "https://12.34.56.79:9527"
- cookies
# 返回CookieJar对象:
cookiejar = response.cookies
# 将CookieJar转为字典:
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
- session
# 创建 session 对象,可以保存 Cookie 值
ssion = requests.session()
# 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里
ssion.post()
# ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面
response = ssion.get()
- 处理HTTPS请求 SSL 证书验证
# verify 默认为True
response = requests.get("https://www.baidu.com/", verify=True)
response = requests.get("https://www.12306.cn/mormhweb/", verify = False)