python之requests的使用方法

两个重要的方法:get和post

requests.get()
语法
r = requests.get(url, params={}, headers={}, cookies={}, allow_redirects=True, timeout=float, proxies={}, verify=True)

参数说明

注:若verify=False,会有警告,可 import requests.packages.urllib3 requests.packages.urllib3.disable_warnings();

 

requests.post()
语法
r = requests.post(url, data={}, headers={}, cookies={}, json=”, files={}, allow_redirects=True, timeout=float, proxies={}, verify=True)

参数说明

请求响应体说明

requests.utils中的常用方法

requests.utils.get_encodings_from_content(r.content): 返回原始数据编码;

requests.utils.dict_from_cookiejar(r.cookies): 将CookieJar转为字典;

requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): 将字典转为CookieJar;

问题与解决方案

开启会话,保持cookie

s = requests.Session()             # 开启会话
cookies = json.loads(result)                     # phantomjs获取的cookies json对象
cookie = {}
for k in cookies:
    cookie[k['name']] = k['value']               # 获取每个cookie中的name和value
s.cookies = requests.utils.cookiejar_from_dict(cookie, cookiejar=None, overwrite=True)       # 将字典cookie转换为cookieJar,然后放在会话中
s.get(url.....)                    # 此时每个请求都会带上cookie
s.cookies: cookiejar对象;
s.cookies.get_dict(): dict,cookie键值对;
 

设置超时和最大尝试次数

timeout是get/post等的参数, 单位秒.
max_retries需要构建一个HTTPAdapter并设置其max_retries, 最后将该Adaptor加载给requests的Session对象. mount时的链接是前端最大匹配, 使用”http://”和”https://”可以分别对应两大类网址. 也可以更具体针对某网站.

requestsSession = requests.Session()                                # 开启会话
requestsAdapterA = requests.adapters.HTTPAdapter(max_retries=3)     # 挂载适配器
requestsSession.mount('http://', requestsAdapterA)                  # 此会话中适用所有http请求
r = requestsSession.get(url , timeout=20)                           # 打开相应url并设置超时

注:max_retries适用于超时,并不适用于访问出错。
注:在会话中,请求url1所返回的cookies会自动保存,当访问url2的时候也会被自动带入。

上传文件

url = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
# files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}   # 显示的设置文件名、文件类型、文件头
r = requests.post(url, files=files)
r.text

流式上传

with open('xxx.txt') as fp:
    requests.post('http://some.url/api', data=fp)

文件下载

from PIL import Image
from io import BytesIO

url = 'http://xxx.jpg'
r = requests.get(url)
i = Image.open(BytesIO(r.content))
i.save('local.jpg')

注意事项

get()或post()中的headers、cookies设置的值,将合并到Requests中去,所以传入 {} 也没关系;
图片、pdf等打开方式应该为 ‘wb’,写入的内容应该是 r.content;
若是响应头Content-Type中不含charset,则 r.text 默认为 ‘ISO-8859-1’;
若是timeout没有显示的设置,理论上requests请求永不超时。
在session中删除一个参数,直接设置其值为None;

好文:https://blog.csdn.net/lihao21/article/details/51857385

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python3 requests 是一个 HTTP 库,可以让你以简单的方式发送 HTTP/1.1 请求。它支持 HTTP/1.1 和 HTTPS,并且对 HTTP/2 也有一些支持。使用 requests 库可以方便地获取网页内容、发送 POST 和 GET 请求、上传文件、处理 cookies 等。 下面是使用 Python3 requests 库的基本步骤: 1. 安装 requests 库: 在命令行中输入以下命令: ``` pip3 install requests ``` 2. 导入 requests 库: 在 Python3 代码中导入 requests 库: ``` import requests ``` 3. 发送 GET 请求: 使用 requests 库发送 GET 请求的基本语法为: ``` response = requests.get(url) ``` 其中,url 是请求的网址,response 是服务器响应的对象。 例如: ``` import requests response = requests.get('http://www.baidu.com') print(response.text) ``` 上面的代码会发送一个 GET 请求到百度的网址,然后将服务器响应的内容打印出来。 4. 发送 POST 请求: 使用 requests 库发送 POST 请求的基本语法为: ``` response = requests.post(url, data=data) ``` 其中,url 是请求的网址,data 是请求的数据,可以是字典、元组列表、JSON 等。 例如: ``` import requests data = {'username': 'test', 'password': '123456'} response = requests.post('http://www.example.com/login', data=data) print(response.text) ``` 上面的代码会发送一个 POST 请求到 http://www.example.com/login 的网址,然后将服务器响应的内容打印出来。 5. 上传文件: 使用 requests 库上传文件的基本语法为: ``` response = requests.post(url, files=files) ``` 其中,url 是请求的网址,files 是要上传的文件。 例如: ``` import requests url = 'http://www.example.com/upload' files = {'file': open('example.png', 'rb')} response = requests.post(url, files=files) print(response.text) ``` 上面的代码会上传 example.png 文件到 http://www.example.com/upload 的网址,然后将服务器响应的内容打印出来。 6. 管理 cookies: 使用 requests 库管理 cookies 的基本方法为: ``` import requests # 发送请求时带上 cookies cookies = {'name': 'value'} response = requests.get('http://www.example.com', cookies=cookies) # 获取响应的 cookies cookies = response.cookies ``` 上面的代码会在发送请求时带上 cookies,并在响应中获取 cookies。 以上就是使用 Python3 requests 库的基本步骤。除了上面介绍的功能,requests 库还支持代理、SSL 验证、连接池等高级功能,可以根据具体需求进行调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值