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.下载钉钉客户端

下载安装后打开到这个界面

python统计钉钉群消息 python爬取钉钉聊天记录_python统计钉钉群消息

 

3.配置钉钉机器人 

点击

python统计钉钉群消息 python爬取钉钉聊天记录_python request模块  _02

选择机器人管理

python统计钉钉群消息 python爬取钉钉聊天记录_python统计钉钉群消息_03

选择自定义机器人webhook

python统计钉钉群消息 python爬取钉钉聊天记录_python request模块  _04

输入名字,选择一个群发组

python统计钉钉群消息 python爬取钉钉聊天记录_python统计钉钉群消息_05

安全设置选ip地址,填你要执行脚本的主机ip(必须是公网ip)

python统计钉钉群消息 python爬取钉钉聊天记录_python统计钉钉群消息_06

创建之后会给你一个Webhook,复制即可

python统计钉钉群消息 python爬取钉钉聊天记录_python request模块  _07

 

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

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

python统计钉钉群消息 python爬取钉钉聊天记录_python统计钉钉群消息_08