11.Python-第三方库requests详解(三)

Response对象

使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如上实例中已经提到的 r.text、r.status_code……
获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。

r = requests.get(‘http://www.itwhy.org‘)
print(r.text, ‘\n{}\n‘.format(‘*‘*79), r.encoding)
r.encoding = ‘GBK‘
print(r.text, ‘\n{}\n‘.format(‘*‘*79), r.encoding)

其他响应

r.status_code #响应状态码
r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
#*特殊方法*#
r.json() #Requests中内置的JSON解码器
r.raise_for_status() #失败请求(非200响应)抛出异常

案例一:

 1 url = ‘http://ip.taobao.com/service/getIpInfo.php‘ #这是淘宝IP地址的一个API
 2 data = {
 3     ‘ip‘:‘8.8.8.8‘
 4 }    #这里构建一个数据字典
 5 r = requests.get(url,params=data) #传入字典数据给API调用
 6 print r.url #打印对应的属性
 7
 8 try:
 9     r = requests.get(url,params=data)
10     r.raise_for_status()
11 except requests.RequestException as e:
12     print e
13 else:
14     result = r.json()
15     print type(result),result

把字符串当文件上传

1 url = ‘http://127.0.0.1:5000/upload‘
2 files = {‘file‘:(‘test.txt‘,b‘Hello Requests.‘)} #将字符串直接当文件传入
3
4 r = requests.post(url,file=files)
5 print r.text

身份验证

r = requests.get(‘https://httpbin.org/hidden-basic-auth/user/passwd‘,auth=HTTPBasicAuth(‘user‘,‘passwd‘))
r = requests.get(‘https://httpbin.org/hidden-basic-auth/user/passwd‘,auth=(‘user‘,‘passwd‘)) #简写
print r.json()

另一种非常流行的HTTP身份认证形式是摘要式身份认证,Requests对它的支持也是开箱即可用的:

1 requests.get(url,auth=HTTPDigestAuth(‘user‘,‘pass‘))

Cookies与会话对象

如果某个响应中包含一些Cookie,你可以快速访问它们:

1 r = requests.get(‘http://www.google.com.hk/‘)
2 print r.cookies[‘NID‘]
3 print tuple(r.cookies)

要想发送你的cookies到服务器,可以使用 cookies 参数:

1 import requests
2
3 url = ‘http://httpbin.org/cookies‘
4 cookies = {‘testCookies_1‘: ‘Hello_Python3‘, ‘testCookies_2‘: ‘Hello_Requests‘}
5 # 在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。
6 r = requests.get(url, cookies=cookies)
7 print(r.json())
时间: 2024-10-10 00:34:12

11.Python-第三方库requests详解(三)的相关文章

python第三方库requests详解

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner.更重要的一点是它支持 Python3 哦! Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than im

python第三方库requests简单介绍

一.发送请求与传递参数 简单demo: import requests r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求 print(r.status_code) # 获取返回状态 r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'}) #带参数的GET请求 print(r.url) print(r.text) #打印解码后的返回数据 1.带参数

Python第三方库Requests学习

1.安装 1 git clone git://github.com/kennethreitz/requests.git 2 cd requests 3 python setup.py install 2.上点威力 (GET) 1 >>> import requests 2 >>> url = 'http://dict.baidu.com/s' 3 >>> payload = {'wd':'python'} 4 >>> r = requ

Python-第三方库requests详解

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner.更重要的一点是它支持 Python3 哦! Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than im

[转载]Python-第三方库requests详解

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner.更重要的一点是它支持 Python3 哦! Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than im

10.Python-第三方库requests详解(二)

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner.更重要的一点是它支持 Python3 哦! Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than im

cocoaPods第三方库使用详解

终端上安装了cocoapods后,打开终端输入下面命令: 1 cd /Users/Sivek_lin/Desktop/AFNTest/AFNTest 2 3 touch podfile 4 5 pod search afn 6 7 //该命令代码以AFN框架为例操作的,下面一步之前先打开工程目录中刚刚创建的podfile文件,添加代码信心, 8 9 pod install 安装框架(pod install --no-repo-update --verbose) $ pod install --n

Python学习教程(Python学习路线):Pandas库基础分析-详解时间序列的处理

Python学习教程(Python学习路线):Pandas库基础分析-详解时间序列的处理 在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与时间相关的数据,比如量化交易就是从历史数据中寻找股价的变化规律.Python中自带的处理时间的模块有datetime,NumPy库也提供了相应的方法,Pandas作为Python环境下的数据分析库,更是提供了强大的日期数据处理的功能,是处理时间序列的利器. 1.生成日期序列 主要提供pd.data_range()和pd.p

Python第三方库之openpyxl(11)

Python第三方库之openpyxl(11) Stock Charts(股票图) 在工作表上按特定顺序排列的列或行中的数据可以在股票图表中绘制.正如其名称所暗示的,股票图表通常被用来说明股价的波动.然而,这张图表也可以用于科学数据.例如,你可以用一个股票图表来表示每日或每年的温度波动.您必须按照正确的顺序组织您的数据,以创建股票图表. 在工作表中组织股票图表数据是非常重要的.例如,为了创建一个简单的高低收盘价的股票图表,您应该按照这个顺序将您的数据以高.低和接近的形式排列为列标题. 尽管股票图