python3_requests模块说明和简单使用
Posted ranxf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3_requests模块说明和简单使用相关的知识,希望对你有一定的参考价值。
1、模块说明
requests是使用Apache2 licensed 许可证的HTTP库。
用python编写。
比urllib2模块更简洁。
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。
在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。
现代,国际化,友好。
2、基础入门
1)导入模块
import requests
2)发送请求的简洁
示例代码:获取一个网页(个人github)
1 import requests
2
3 r = requests.get(‘https://github.com/Ranxf‘)
我们就可以使用该方式使用以下各种方法
1 requests.get(‘https://github.com/timeline.json’) # GET请求 2 requests.post(“http://httpbin.org/post”) # POST请求 3 requests.put(“http://httpbin.org/put”) # PUT请求 4 requests.delete(“http://httpbin.org/delete”) # DELETE请求 5 requests.head(“http://httpbin.org/get”) # HEAD请求 6 requests.options(“http://httpbin.org/get” ) # OPTIONS请求
3)为url传递参数
>>> url_params = {‘key‘:‘value‘} # 字典传递参数,如果值为None的键不会被添加到url中 >>> r = requests.get(‘your url‘,params = url_params) >>> print(r.url) your url?key=value
4)响应的内容
r.encoding #获取当前的编码 r.encoding = ‘utf-8‘ #设置编码 r.text #以encoding解析返回内容 r.content #以字节形式(二进制)返回 r.json() #以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
5)定制头和cookie信息
header = {‘user-agent‘: ‘my-app/0.0.1‘‘} cookie = {‘key‘:‘value‘} r = requests.get/post(‘your url‘,headers=header,cookies=cookie)
6)响应状态码
示例代码:
1 import requests 2 3 r = requests.get(‘https://github.com/Ranxf‘) # 最基本的不带参数的get请求 4 print(r.status_code) # 获取返回状态 5 r1 = requests.get(url=‘http://dict.baidu.com/s‘, params={‘wd‘: ‘python‘}) # 带参数的get请求 6 print(r1.url) 7 print(r1.text) # 打印解码后的返回数据
运行结果:
/usr/bin/python3.5 /home/rxf/python3_1000/1000/python3_server/python3_requests/demo1.py 200
http://dict.baidu.com/s?wd=python
………… Process finished with exit code 0
r.status_code #如果不是200,可以使用 r.raise_for_status() 抛出异常
7)响应
r.headers #返回字典类型,头信息 r.requests.headers #返回发送到服务器的头信息 r.cookies #返回cookie r.history #返回重定向信息,当然可以在请求是加上allow_redirects = false 阻止重定向
8)超时
r = requests.get(‘url‘,timeout=1) #设置秒数超时,仅对于连接有效
9)会话对象,能够跨请求保持某些参数
s = requests.Session() s.auth = (‘auth‘,‘passwd‘) s.headers = {‘key‘:‘value‘} r = s.get(‘url‘) r1 = s.get(‘url1‘)
10)代理
proxies = {‘http‘:‘ip1‘,‘https‘:‘ip2‘ } requests.get(‘url‘,proxies=proxies)
参考:
http://www.python-requests.org/en/master/
http://docs.python-requests.org/en/latest/user/quickstart/
以上是关于python3_requests模块说明和简单使用的主要内容,如果未能解决你的问题,请参考以下文章