requests库
使用 Requests发送网络请求非常简单。
第一步:需要导入 Requests 模块:
import requests
第二步:创建一个Response对象,我们可以各种通过HTTP请求类型从这个对象中获取所有我们想要的信息。
例如:获取 Github 的公共时间线。
Response = requests.get(‘https://api.github.com/events‘)
Response = requests.post(‘http://httpbin.org/post‘, data = {‘key‘:‘value‘})
Response = requests.put(‘http://httpbin.org/put‘, data = {‘key‘:‘value‘})
Response = requests.delete(‘http://httpbin.org/delete‘)
Response = requests.head(‘http://httpbin.org/get‘)
Response = requests.options(‘http://httpbin.org/get‘)
Get 、Post、PUT、DELETE、HEAD 以及 OPTIONS 都是requests 库的HTTP请求类型,常用的一般是Get 、Post两种,下面的教程也是以Get 、Post两种为主介绍相关的使用。
使用代理:
import request proxy = {"http":"23.62.155.5:3365"} response = request.get("http:\\www.baidu.com", proxies=proxy)
cookie:
如果一个响应中包含了 cookie 则可以通过 cookie属性拿到返回的cookie值
import request resp = request.get("http:\\www.baidu.com") print(resp.cookie) print(resp.cookie.get_dict())
session:
urllib库,是可以使用opener发送多个请求,多个请求之间是可以共享cookie的。那么如果使用 requests,也要达到 共享 cookie的目的,那么可以使用 requests库给我们提供的session对象。注意,这里的session不是web开发中的那个 ,这个地方只是一个会话的戏象而已。使用 requests来实现。示例代码如下:
# 创建session对象 session = request.Session() # 正常使用方法 session.post(url,data=data,handers=handers) response = session.get(rul)
处理不信任的SSL证书:
对于那些已经被信任的SSL整数的网站,比如https://www.baidu.com,那么使用requests直接就可以正常的返回响应,示例代码 如下:
resp.requests.get('http://ww.12306.cn/morehweb/,verify=false) print(resp. content. decode(utf-8)