学习笔记-Python-爬虫3-requests

# Requests-献给人类
- HTTP for Humans,更加简洁友好
- 继承了urllib的所有特征
- 底层使用的是urllib3
- 开源,有中文文档
- 安装:conda install requests
- get请求
- requests.get()
- requests.request("get",url)
- 可以带有headers和parmas参数
- 案例v21
- get返回内容
- 案例v22
- post
- rsp = request.post(url, data=data)
- 案例23
- data, headers要求dict类型,不用编码
- proxy
proxies = {
"http":"address of proxy",
"https:"address of proxy"
}
rsp = request.request("get", "http:xxx", proxies=proxies)
- 代理有可能报错,如果使用人数多,考虑安全问题,可能会被强行关闭
- 用户验证
- 代理验证
# 可能需要使用HTTP basic Auth
# 格式为 用户名:密码@代理地址:端口号
proxy = {
"http":"china:123456@192.168.1.123:4444",
}
rsp = requests.get("http:www.baidu.com", proxies = proxy)
- web客户端验证
- 如果遇到web客户端验证,需要添加auth=(用户名, 密码)
# 授权信息
auth = ("test1", "123456")
rsp = requests.get("http://www.baidu.com", auth=auth)
- cookie
- requests可以自动处理cookie信息
rsp = request.get("http://www.baidu.com")
# 如果对方服务器给传递过来cookie信息,则可以通过反馈的cookie属性得到
cookiejar = rsp.cookies
# 可以把cookiejar转换成字典
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
- session
- 跟服务器session不是一个东东
- 模拟一次会话,从客户端浏览器链接服务器开始,到客户端浏览器断开
- 能让我们跨请求时保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie
# 创建session对象,保持同一个cookie
ss = request.session()
headers = {"User-Agenr":"xxx"}
data = {"name":"xx"}
# 由创建的session发出请求
ss.post("http://www.baidu.com", data=data, headers=headers)
rsp = ss.get("http://www.baidu.com")
- https请求验证ssl证书
- 参数verify负责表示是否需要验证ssl证书,默认是True
- 如果不需要验证ssl证书,则设置成False表示关闭
rsp = requests.get("https://www.baidu.com", verify=False)

 

 

 


posted @ 2018-11-27 17:17  美滋滋的胖虎  阅读(181)  评论(0编辑  收藏  举报