python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

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系统主机

  1. [root@ localhost day12]# vim dingtalk.py
  2. import json
  3. import requests
  4. import sys
  5.  
  6.  
  7. def send_msg(url, reminders, msg):
  8.   headers = {'Content-Type': 'application/json;charset=utf-8'}
  9.   data = {
  10.        "msgtype": "text", # 发送消息类型为文本
  11.        "at": {
  12.              "atMobiles": reminders,
  13.              "isAtAll": False,                  # 不@所有人,如果要@所有人写True并且将上面atMobiles注释掉
  14. },
  15.        "text": {
  16.              "content": msg, # 消息正文
  17. }
  18. }
  19.    r = requests.post(url, data=json.dumps(data), headers=headers)
  20.    return r.text
  21.  
  22. if __name__ == '__main__':
  23.   msg = "这只是一个测试"
  24.   reminders = ['15055667788']                           # 特殊提醒要查看的人,就是@某人一下
  25.   url = 此处填写上面webhook的内容
  26.   print(send_msg(url, reminders, msg))

 

5.执行脚本查看结果 

[root@ localhost /]# python3 dingtalk.py

尝试一下@所有人和@单个人

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值