本文实例讲述了Python Requests库基本用法。分享给大家供大家参考,具体如下:
requests是python的一个http client库,提供了一套简捷的API供开发者使用。下面简单介绍一下其安装和使用。这里是官方文档。
0 安装
1
|
pip install requests
|
1 发送请求
1
2
3
4
5
6
7
|
r = requests.get( 'https://www.baidu.com' )
print r.status_code,r.text
r = requests.post( 'http://httpbin.org/post' )
r = requests.put( 'http://httpbin.org/put' )
r = requests.delete( 'http://httpbin.org/delete' )
r = requests.head( 'http://httpbin.org/head' )
r = requests.options( 'http://httpbin.org/' )
|
2 发送get参数
1
2
|
param = { 'key1' :value1, 'key2' :value2}
r = requests.get( 'http://www.baidu.com/' ,params = param)
|
3 发送post参数
1
2
3
4
5
|
param = { 'key1' :value1, 'key2' :value2}
r = requests.post( 'http://www.baidu.com/' ,params = param) #表单格式
r = requests.post( 'http://www.baidu.com/' ,json = param) #json格式数据
file = { 'file' : open ( '1.txt' , 'rb' )}
r = reuqest.post( 'http://httpbin.org/post' ,files = file )
|
4 文件下载
1
2
3
|
with open ( '1.pic' , 'wb' ) as pic:
for chunk in response.iter_content(size):
pic.write(chunk)
|
5 携带header
1
2
|
header = { 'key1' :value1, 'key2' :value2}
r = requests.get( 'http://www.baidu.com/' ,headers = header)
|
6 携带cookie
1
2
|
cookie = { 'key1' :value1, 'key2' :value2}
r = requests.get( 'http://www.baidu.com/' ,cookies = cookie)
|
7 重定向
默认requests是允许重定向的,并将重定向的历史保存在response.history
数组中
如果不需要重定向,可以通过开关来关闭
1
|
r = requests.get( 'http://www.baidu.com/' ,allow_redirects = False )
|
8 使用代理
使用socks代理需要安装三方扩展包
1
|
pip install requests[socks]
|
1
2
3
4
5
6
|
proxy = {
'http' : 'http://127.0.0.1:8000' ,
'https' : 'https://127.0.0.1:8080'
'http' : 'socks5://user:pass@127.0.0.1:8132'
}
r = requests.get( 'https://www.github.com/' ,proxies = proxy)
|
9 设置连接超时
1
|
r = requests.get( 'http://www.baidu.com/' ,timeout = 2.5 )
|
10 ssl证书
证书验证
1
2
|
requests.get( 'https://kennethreitz.com' , verify = True )
requests.get( 'https://kennethreitz.com' , cert = ( '/path/server.crt' , '/path/key' ))
|
如果指定本地证书及密钥,则密钥需要是解密的。
11 requests对象
r.url
r.text
r.headers
12 Response对象
response.request
对应的请求对象response.raw socket
上直接获得的数据response.text
根据响应头进行解码的文本数据response.content
不解码,返回二进制数据response.json()
对返回数据进行json解码response.headers
词典形式存储返回的headersresponse.cookies
词典形式存储返回的cookies
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/zzulp/article/details/69240454