GitHub代码练习地址:1.两种简单get请求方法:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac13_requests1.py
2.带请求头与参数的get请求:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac14_requests2.py
Requests-献给人类
是urllib模块的完美替换,两者功能基本相同
HTTP for Humans,更简洁更友好
继承了urllib的全部特征
底层使用的是urllib3
开源地址: https://github.com/requests/requests
中文文档: http://docs.python-requests.org/zh_CN/latest/index.html
安装: conda install requests
1、两种get请求方法:
requests.get(url)
requests.request("get", url)
能够带有headers和parmas参数来请求
2、requests下使用proxy代理
proxies = {
"http":"address of proxy",
"https": "address of proxy"
}
rsp = requests.request("get", "http:xxxxxx", proxies=proxies)
代理有可能报错,若是使用人数多,考虑安全问题,可能会被强行关闭
用户验证
代理验证
可能须要使用HTTP basic Auth, 能够这样
格式为 用户名:密码@代理地址:端口地址
proxy = { "http": "china:123456@192.168.1.123:4444"}
rsp = requests.get("http://baidu.com", proxies=proxy)
web客户端验证
若是遇到web客户端验证,须要添加auth=(用户名,密码)
autu=("test1", "123456")#受权信息
rsp = requests.get("http://www.baidu.com", auth=auth)
3、requests下的cookie与session以及ssl证书相关问题
cookie
requests能够自动处理cookie信息
rsp = requests.get("http://xxxxxxxxxxx")
若是对方服务器给传送过来cookie信息,则能够经过反馈的cookie属性获得
返回一个cookiejar实例
cookiejar = rsp.cookies
能够讲cookiejar转换成字典
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
session
跟服务器端session不是一个东东
模拟一次会话,从客户端浏览器连接服务器开始,到客户端浏览器断开
能让咱们跨请求时保持某些参数,好比在同一个session实例发出的 全部请求之间保持cookie
建立session对象,能够保持cookie值
ss = requests.session()
headers = {"User-Agetn":"xxxxxxxxxxxxxxxxxx"}
data = {"name":"xxxxxxxxxxx"}
此时,由建立的session管理请求,负责发出请求,
ss.post("http://www.baidu.com", data=data, headers=headers)
rsp = ss.get("xxxxxxxxxxxx")
https请求验证ssl证书
参数verify负责表示是否须要验证ssL证书,默认是True
若是不须要验证ssl证书,则设置成False表示关闭
rsp = requests.get("https://www.baidu.com", verify=False)
若是用verify=True访问某些证书有问题的网站会报错。