Python脚本搭配WPS多维表推送每日英语

一、问题的提出

平时英语教学过程中,经常通过公众号给学生发送英语每日一句,让学生每天都可以学习地道的英汉双语句子,帮助学生巩固英语语法,提升词汇量,从而为四六级考试打好基础。

到了假期,还想给学生继续"加餐",就想到每天发送二句英中对照的句子。为了实现自动化的操作,我通过WPS的多维表,设置自动化流程,调用Python代码,每天定时在多维表中新增记录,分别从网上下载最新的每日英语,然后通过webhook地址,把信息发送到企业微信群中。这样,学生每天都可以学习到最新的英语句子了。

二、实现过程

2.1新建消息推送机器人

用电脑打开企业微信群,点击右上角的三个点,选择【消息推送】,再点击【添加】可以添加微信机器人。

添加消息推送助手

再选择【自定义消息推送】, 设置一个推送机器人图标、名称和简介,并记下它的webhook地址备用。

添加企业微信推送机器人

最终的推送机器人配置如下。如果想让所有学生接收信息,可以把这个机器人添加到学生企业微信群中,这样每天就可以看到发送的信息了。

2.2 新建多维表

打开http://docs.wps.cn,新建多维表格,将其重命名为【每日2句推送】,并设置日期和文本两个字段。

新建多维表格

2.3 添加Python代码

在设置自动化流程之前,先设置脚本,点击多维表右上角的【脚本】------【PY脚本】------【新建脚本】把下面的Python代码放入其中,并把脚本命名为:【每日一句发送】。这段代码利用了WPS多维表自带的爬虫功能,调用requests, BeautifulSoup等模块,从网上获取英语每日一句,并写入到多维表中。由于我们这里是两个平台的句子,所以最后得到的是两个英文句子及其翻译。

python 复制代码
import requests,time
from bs4 import BeautifulSoup
rec_id =  Context['argv']['rec_id'][0]

# 获取jinshan双语句子
def jinshan():
    url = 'http://open.iciba.com/dsapi/'
    res = requests.get(url)
    content = res.json()['content'] + res.json()['note']
    return content

# 获取haici的每日句子
def haici():
    url2 = r"http://dict.cn"
    resp = requests.get(url2)
    soup = BeautifulSoup(resp.text, "html.parser")
    htm = soup.find("div", class_="daily_sentence")
    sen = htm.text.strip().split("\t\t\t")[2]  # 根据实际情况拆分句子
    return sen
#写入到多维表中
def write_sen():
  url = jinshan() + "\n" +haici()
  if url:
      # 构建数据记录 - 使用字段名作为键
      record_data = {"_rid":rec_id,"文本":url}
      
      # 更新当前记录
      update_dbt(data=record_data, sheet_name='数据表')
      time.sleep(1)  # 每个记录处理完后等待0.6秒
      
write_sen()

2.4 设置自动化流程

依次点击WPS多维表右上角的【自动化流程】------【创建空白流程】------【设置触发条件为定时触发】

设置自动化流程

这样每天固定时间,如9:00,WPS多维表就会定时增加一条记录,然后PY脚本【每日2句发送】就会自动执行,爬取网上的每日英语,并写入到多维表中。

2.4.1 定时触发

定时触发条件中设置为【每天触发】,触发时间和定时有效期可以自定义。

自定义触发时间

2.4.2 新增记录

选择配置参数为当前的数据表,设置记录内容为当前时间,这样每天多维表会自动增加一条记录并自动在日期字段填充当前日期。

新增记录为当前日期

2.4.3 执行PY代码

接下来,新增时间记录,执行PY脚本,并传入当前新增记录ID,这样代码就可以把每日英语写入到上一步的新增记录里。最后还要点击【保存并启动】,启用当前流程。

执行PY代码

需要注意的是,在配置PY代码时,要开通【网络API】,这样PY代码才能够顺利执行。

开启网络API

2.5 设置企业微信群发流程

最后,再设置一个发送企业微信的自动化流程,把上一个流程中获得的每日英语发送到企业微信,触发条件为当数据表中文本字段内容不为空时。

企业微信群发

在发送企业微信群消息期间,填写在2.1部分获取的webhook地址,消息类型选择为文本。

发送企业微信群聊消息

消息内容选择第1步触发的记录的日期和文本。这样就可以把【每日2句定时发送】流程中写入的日期和文本信息同步发送出去。

设置消息内容

最后还要点击【保存并启动】,启用当前流程。

2.6 效果展示

设置完成后,每天定时角发多维表【每日2句定时发送】流程,写入最新的每日英语信息,完成后,由于文本字段不为空,就会触发【发送企业微信】流程,这样就实现了每日英语自动写入多维表,并定时群发到各个添加信息推送机器人的群。发送的效果如下:

发送效果

三、写在最后

本文通过设置企业推送机器人,构建多维表格,设置自动化流程,配置PY脚本,实现了网上每日英语自动爬取,自动写入多维表,并群发至企业微信群的自动化功能。这一过程的特点是免费、速度快、可定时,经过测试,代码执行成功率高,自动化流程非常稳定。

未来,可以继续优化流程,把发送的内容设置成富文本信息,还可以配置相关图片,增加每日英语内容的丰富度和样式的吸引力,从而更好地助力学生英语学习,提升英语学习效果,同时也解放教师,节约办公时间,达到事半功倍的英语学习效果。

相关推荐
寻寻觅觅☆6 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
YJlio6 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
l1t7 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
赶路人儿7 小时前
Jsoniter(java版本)使用介绍
java·开发语言
ceclar1238 小时前
C++使用format
开发语言·c++·算法
山塘小鱼儿8 小时前
本地Ollama+Agent+LangGraph+LangSmith运行
python·langchain·ollama·langgraph·langsimth
码说AI8 小时前
python快速绘制走势图对比曲线
开发语言·python
Gofarlic_OMS8 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
星空下的月光影子8 小时前
易语言开发从入门到精通:补充篇·网络爬虫与自动化采集分析系统深度实战·HTTP/HTTPS请求·HTML/JSON解析·反爬策略·电商价格监控·新闻资讯采集
开发语言