0.安装requests模块
Linux下执行
pip3 install requests
1.request简介
Reqest是Python的HTTP库,内部采用urillib3模块,但是用起来比urllib3更简洁,需要单独安装
2. request特性
-支持keep-alive的连接池
-支持通用的域名以及URL地址
-支持使用cookie
-支持使用类似游览器的SSL验证
-支持上传,下载
3.GET和POST
通过requests发送一个GET请求,需要在URL里请求的参数可通过params传递
r=requests.get(url="",params={},header={},cookie={})
与GET不同的是,POST请求新增加了一个可选参数data,需要通过POST请求传递的body里的数据可以通过data传递
r=requests.post(url="",data={},params={},header={},cookie={})
当访问一个URL时,我们经常需要发送一些查询字段,例如http://xxx.com/get?key=1,这里的key=1就是限定返回条件的参数键值对,当利用python的reqeusts去发送一个需要包含这些参数键值对时,可以将它们传给params。好处是安全和简洁
payload={'key1':'value1','key2':'value2'}
r=request.get('http://xxx.com/get,params=payload')
4.PUT,DELETE,HEAD以及OPTIONS
r=request.put('www.baidu.com/put',data={'key':'value'})
r=request.delete('www.baidu.com/delete')
r=request.head('www.baidu.com/get')
r=request.options('www.baidu.com/get')
5.设置头部和发送请求数据
用户也可以自己设定请求头,有时也需要将一些数据放在请求的body内,就需要对data传参了(仅POST,DELETE,PUT有效,GET请求无body)
url='https://api.gihub.com/some/endpoint'
headers={'Accepet':'application/json'}
payload={'key1':'value1','key2':'value2'}
r=request.post(url,headers,data=payload)
6.响应内容
读取服务器响应的内容
r=request.get('http://www.baidu.com')
查看内容:r.text r.content
查看编码:r.encoding
修改编码:r.encoding='utf8'
查看响应头:r.headers
内置json解码器:r.json()
实验--在钉钉中创建群聊机器人
1.注册钉钉账号(有跳过)
没有钉钉的话先注册
【官网】https://www.dingtalk.com/oasite/register_new.htm?source=1001&lwfrom=2017120202092064213045501#/
2.下载钉钉客户端
下载安装后打开到这个界面
3.配置钉钉机器人
点击
选择机器人管理
选择自定义机器人webhook
输入名字,选择一个群发组
安全设置选ip地址,填你要执行脚本的主机ip(必须是公网ip)
创建之后会给你一个Webhook,复制即可
4.编写脚本
准备一台联网的linux系统主机
- [[email protected] localhost day12]# vim dingtalk.py
- import json
- import requests
- import sys
- def send_msg(url, reminders, msg):
- headers = {'Content-Type': 'application/json;charset=utf-8'}
- data = {
- "msgtype": "text", # 发送消息类型为文本
- "at": {
- "atMobiles": reminders,
- "isAtAll": False, # 不@所有人,如果要@所有人写True并且将上面atMobiles注释掉
- },
- "text": {
- "content": msg, # 消息正文
- }
- }
- r = requests.post(url, data=json.dumps(data), headers=headers)
- return r.text
- if __name__ == '__main__':
- msg = "这只是一个测试"
- reminders = ['15055667788'] # 特殊提醒要查看的人,就是@某人一下
- url = 此处填写上面webhook的内容
- print(send_msg(url, reminders, msg))
5.执行脚本查看结果
[[email protected] localhost /]# python3 dingtalk.py
尝试一下@所有人和@单个人