最近
有些朋友
看完小帅b的文章之后
把小帅b的表情包都偷了
还在我的微信
疯狂发表情包嘚瑟
我就呵呵了

文章插图
只能说一句
盘他
还有一些朋友
看完文章不点好看
还来催更
小帅b也只能说一句
继续盘他

文章插图
ok
接下来我们要来玩一个新的库
这个库的名称叫做
Requests
这个库比我们上次说的 python爬虫03:那个叫 Urllib 的库让我们的 python 假装是浏览器可是要牛逼一丢丢的
毕竟 Requests 是在 urllib 的基础上搞出来的
通过它我们可以用更少的代码
模拟浏览器操作
人生苦短
接下来就是
学习 Python 的正确姿势

文章插图
skr
对于不是 python 的内置库
我们需要安装一下
直接使用 pip 安装
pip install requests
安装完后就可以使用了
接下来就来感受一下 requests 吧
导入 requests 模块
import requests一行代码 Get 请求r = requests.get('https://api.github.com/events')一行代码 Post 请求r = requests.post('https://httpbin.org/post', data = https://www.isolves.com/it/yj/zs/2020-06-21/{'key':'value'})其它乱七八糟的 Http 请求>>> r = requests.put('https://httpbin.org/put', data = https://www.isolves.com/it/yj/zs/2020-06-21/{'key':'value'})>>> r = requests.delete('https://httpbin.org/delete')>>> r = requests.head('https://httpbin.org/get')>>> r = requests.options('https://httpbin.org/get')想要携带请求参数是吧?>>> payload = {'key1': 'value1', 'key2': 'value2'}>>> r = requests.get('https://httpbin.org/get', params=payload)假装自己是浏览器>>> url = 'https://api.github.com/some/endpoint'>>> headers = {'user-agent': 'my-App/0.0.1'}>>> r = requests.get(url, headers=headers)获取服务器响应文本内容>>> import requests>>> r = requests.get('https://api.github.com/events')>>> r.textu'[{"repository":{"open_issues":0,"url":"https://github.com/...>>> r.encoding'utf-8'获取字节响应内容>>> r.contentb'[{"repository":{"open_issues":0,"url":"https://github.com/...获取响应码>>> r = requests.get('https://httpbin.org/get')>>> r.status_code200获取响应头>>> r.headers{ 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'Nginx/1.0.4', 'x-runtime': '148ms', 'etag': '"e1ca502697e5c9317743dc078f67693f"', 'content-type': 'application/json' }获取 Json 响应内容>>> import requests>>> r = requests.get('https://api.github.com/events')>>> r.json()[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...获取 socket 流响应内容>>> r = requests.get('https://api.github.com/events', stream=True)>>> r.raw<urllib3.response.HTTPResponse object at 0x101194810>>>> r.raw.read(10)'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'Post请求当你想要一个键里面添加多个值的时候
>>> payload_tuples = [('key1', 'value1'), ('key1', 'value2')]>>> r1 = requests.post('https://httpbin.org/post', data=https://www.isolves.com/it/yj/zs/2020-06-21/payload_tuples)>>> payload_dict = {'key1': ['value1', 'value2']}>>> r2 = requests.post('https://httpbin.org/post', data=payload_dict)>>> print(r1.text){ ... "form": { "key1": [ "value1", "value2" ] }, ...}>>> r1.text == r2.textTrue请求的时候用 json 作为参数>>> url = 'https://api.github.com/some/endpoint'>>> payload = {'some': 'data'}>>> r = requests.post(url, json=payload)
推荐阅读
- Streamlit是python的一个机器学习、数据科学、应用开发框架
- Python-Streamlit库再学习:st.slider和数据可视作图
- Python中的数据结构
- 「Python」连接数据库的三种方式
- 超全的Python图像处理讲解,小白也能懂
- 附代码 什么是Python的迭代器和生成器?
- Python破解BiliBili滑块验证码,完美避开人机识别
- Python 还能实现哪些 AI 游戏?附上代码一起来一把
- 数据更新删除与排序:横向对比 Python、PowerBI、Excel、MySQL
- 用 Python 解析命令行参数
