Python requests库(二)
2020-01-04 本文已影响0人
伊洛的小屋

本文是Python requests库 (一)的后续,简单的介绍一下python
第三方库 requests
的一些简单的高级用法
本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!
1. 文件上传
- 通过
request
上传一张photo
>>> import requests
>>> files = {'file':open('photo.jpg', 'rb')}
>>> r = requests.post('http://httpbin.org/post', files=files)
>>> print(r.text)
2. 获取 cookies
- 访问知乎,然后获取
cookies
>>> import requests
>>> r = requests.get("https://www.zhihu.com")
>>> print(r.cookies)
<RequestsCookieJar[<Cookie _xsrf=kpkc08adzcWJ2IZXxQAh85ujvtFiPArj for .zhihu.com/>]>
3. 会话维持
- 如果需要访问的网页是需要登陆之后再使用的话就需要会话维持,一般在做接口自动化测试或者爬虫一些网站的时候,都是需要保持登录态
>>> import requests
>>> requests.get("http://httpbin.org/cookies/set/number/123456789")
<Response [200]>
>>> r = requests.get('http://httpbin.org/cookies')
>>> print(r.text)
{
"cookies": {}
}
- 上面并没有获取到
cookies
,因为request
设置cookie
和后来的获取cookie
相当于打开了两个浏览器 - 如何解决这个问题,我们需要用到
session
,这是在自动化接口测试或者爬虫中经常会被用到,有必要掌握
>>> import requests
>>> s = requests.Session()
>>> s.get('http://httpbin.org/cookies/set/number/123456789')
<Response [200]>
>>> r = s.get('http://httpbin.org/cookies')
>>> print(r.text)
{
"cookies": {
"number": "123456789"
}
}
- 以上,成功保持会话
4. SSL证书验证
- 你肯定会有过类似的这种经历,当你打开一个网页的时候会提示你访问的地址不安全,这是由于
https
协议需要证书 - 程序访问后一定会报出
SSLError
错误 - 解决方式
1.设置verify = False
2.传入证书cert="你的证书"
5.代理设置
- 爬虫的时候通常会设置代理
- 方式在
proxies=输入你的代理
6. 超时设置
- 限制应答时间,比如访问伊洛的个人博客https://yiluotalk.com ,设置超时
1s
# 伊洛Yiluo
# https://yiluotalk.com
>>> import requests
>>> r = requests.get("https://yiluotalk.com", timeout = 1)
>>> print(r.status_code)
200
7.身份认证
- 一些网站当你访问的时候首先会让你登录做验证
- 解决方式,传入
auth
参数auth=HTTPBasicAuth('user', 'password')
欢迎下方【戳一下】【点赞】
Author:伊洛Yiluo
愿你享受每一天,Just Enjoy !
