requests库入门-12-response对象的API
来源:互联网 发布:桝太一 知乎 编辑:程序博客网 时间:2024/06/16 11:42
前面文章我们一直在介绍请求,各种请求方法的使用,作为请求回来的response对象,没有过多介绍。这篇就来介绍response的对象和常用的API。我们不管是接口测试还是爬虫,最关心的是请求回来的数据的提取。本文介绍的这些方法,能够让你完成这个数据解析和提取的目的。
1. HTTP状态码
前面我们也输出过response.status_code,如果请求正常,返回的是一个200这个数字。除了200,我们有必要了解一些常见的HTTP状态码的含义,这里我们打开wiki,地址是https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81,我们主要要学会这些代码含义。
我们大致要知道,1xx表示消息,一般很少用到。2xx表示请求成功,最常见的是200。3xx表示重定向。4xxx表示请求错误,例如400一般表示参数错误,404表示请求的内容在服务器上不存在。5xx表示服务器错误,常见的有,500,服务器内部错误,503访问过载,504网关超时。其他的有兴趣自己去看看。
2. Response对象的所有API
Response对象,提供了很多API,供我们使用,达到不同的目的,主要分一下两组。
左边:
第一个status_code,返回的是状态码。headers是用来查看相应头部内容。url是输出当前请求地址。history是给出相应调整历史记录。elapsed是记录得到这个响应花费的时间。
右边:
第一个encoding是获取响应的编码类型,一般是utf-8。raw是直接读取该响应数据。content和text文件有一点区别,content是Batch treatment文件类型,输出前面会有一个b,text是转换unicode格式输出。json就是采用json格式输出响应内容,这个json我们用得比较多。
3.举例
1)左侧API演示
import requestsr = requests.get('https://api.github.com')print(r.status_code)print(r.reason)print(r.headers)print(r.url)print(r.history)print(r.elapsed)print(r.request)输出内容:
200OK{'Date': 'Tue, 29 Aug 2017 09:38:16 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Server': 'GitHub.com', 'Status': '200 OK', 'X-RateLimit-Limit': '60', 'X-RateLimit-Remaining': '59', 'X-RateLimit-Reset': '1504003096', 'Cache-Control': 'public, max-age=60, s-maxage=60', 'Vary': 'Accept, Accept-Encoding', 'ETag': 'W/"7dc470913f1fe9bb6c7355b50a0737bc"', 'X-GitHub-Media-Type': 'github.v3; format=json', 'Access-Control-Expose-Headers': 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval', 'Access-Control-Allow-Origin': '*', 'Content-Security-Policy': "default-src 'none'", 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains; preload', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'deny', 'X-XSS-Protection': '1; mode=block', 'X-Runtime-rack': '0.011608', 'Content-Encoding': 'gzip', 'X-GitHub-Request-Id': '1030:2E7FE:11B2A53:169E501:59A53606'}https://api.github.com/[]0:00:02.328633<PreparedRequest [GET]>
上面可以看到该请求得到respons数据,花费了2.328633秒,这个在国内服务器上,这个性能是不能接受的。
2)右侧API演示
import requestsr = requests.get('https://api.github.com')print(r.encoding)print(r.raw)print(r.content)print(r.text)print(r.json())
运行输出结果
- requests库入门-12-response对象的API
- Requests库的入门
- 爬虫学习01 requests入门 response的常用方法 response.text 和response.content的区别
- Response对象的API的代码演示
- python requests库 API
- Requests库入门
- Requests库入门
- Requests库入门
- Requests库入门
- Requests 库入门
- python requests库翻译(三)-response
- requests库入门-1-安装requests库
- Response对象和常用API
- javaweb开发入门-response对象
- requests库入门-4-HTTP请求方法和用requests举例不带参数的请求
- requests库入门-5-带参数的请求类型
- 爬虫入门系列(二):优雅的HTTP库requests
- 网络爬虫之requests库中两个重要的对象
- pop动画片段
- android Framework
- React Native 下载组件以及npm常用命令
- [py]python多继承
- MySQL高可用介绍3-drbd
- requests库入门-12-response对象的API
- 自动化测试-测试用例成功失败的判定标准-断言
- Boa服务器移植到嵌入式开发板上
- 【年中总结】衣带渐宽终不悔
- iOS 修改头像,几行代码实现从相册选择照片
- 文件下载实现
- 【文章导航】伏草惟存,五年博客精选系列文章
- 启动过程内存check和vmalloc大小设置
- git使用