文章定时自动采集(先说一下我的实现原理:上传图床+群机器人+定时发送)

优采云 发布时间: 2022-01-28 13:12

  文章定时自动采集(先说一下我的实现原理:上传图床+群机器人+定时发送)

  大家好

  昨天关于excel自动化的文章文章发表后,感觉大家对这个挺感兴趣的,菜哥有好几个读者在问如何实现图片的自动发送。

  

  老实说,每个人都对定期发送图片感兴趣,这让我有点惊讶。我想有些读者会对模型的原理感到好奇。

  

  不过既然大家都问了,那今天就来说说我用的方法。

  用了一个多月定期发图,目前运行良好,也没有什么奇怪的问题,所以这个方法应该比较成熟,大家可以自己复现

  当然,如果有比我分享的更好的方法(肯定会有),大家可以在留言区留言,大家一起学习。

  先说一下我的实现原理:上传图床+群机器人+定时发送

  对了,自动发送图片的时候,我默认你已经可以将excel表格转成本地图片了

  先说第一个,画床

  在自动发送图片的时候,我在想一个问题:你要发送的图片应该在线显示,或者在线显示有问题的时候用户可以点击链接查看。因此,有两个必要条件:在线展示+链接

  有一种我能想到的方法可以完美解决以上问题:画床

  将图片上传到xxx图床平台,然后访问时,只需点击图片对应的访问url即可。

  常用的免费图床平台有 github、gitee、SMS 等,还有一些可用的像 csdn、微博、知乎 等。付费的像 xx 云平台可能更稳定,但目前我免费的用了一个月了,没发现什么问题,所以不建议你用付费的。

  一开始我用的是github(因为我一直用github做代码管理),上传图片没有问题,但是如果没有工具,一般10张图片有9张不能在线预览,即使你使用 url 访问也会经常挂起。

  之后试了下短信图床,比github好,但是还是偶尔挂掉。

  我最终使用了 gitee 并且问题再也没有发生过。

  综上所述,图床推荐大家使用gitee,将自己用excel生成的图片上传到gitee

  需要注意的是图片名称不能重复,最好用时间戳命名

  另外,如何上传图片到gitee,bing搜索关键词:上传图片到gitee,你会找到你想要的答案,不再赘述

  再说第二个,群机器人

  如果选择使用邮件通知,可以参考上一篇用Python操作发送邮件的文章文章

  今天我们讨论的是通过群组机器人进行通知。这里的群可以是微信群,也可以是钉钉群。推荐后者。因为官方做了详细的界面,稍微设置一下,三两行代码就可以直接发群消息了

  首先我们打开钉钉,随机拉2人,创建一个群聊,在群设置中点击智能群助手。

  

  进入机器人管理页面,点击添加机器人,进入机器人选择页面,这里选择自定义机器人。

  

  您需要修改机器人的头像和名称。在安全设置中,建议也勾选自定义关键字。比如我这里设置的是:常规推送,然后其他的可以默认。点击完成后,会出现一个新页面。一个网络钩子

  

  

  这更重要。以后会用到,所以一定要备份。

  总结一下,这里有两点需要注意:一个机器人webhook,一个自定义关键字

  再说第三个,定时推送

  记得之前写过详细教程,一个是linux下,基于cron服务定时执行程序;另一种是在窗口下,通过任务调度器定时执行程序。

  有兴趣的可以点击了解:

  这里直接贴出如何调用上一步的webhook进行消息通知

  我之所以使用钉钉机器人,是因为官方做了非常详细的接口和使用文档,两三行代码就可以直接调用

  以下是官方文档,非常详细:

  #topic-2026027

  因为机器人可以通过markdown的形式发送通知,而markdown是卡片式的消息通知,可以在线预览,正好适合我们这次的需求。

  对应消息通知的格式化代码如下:

  url = 'https://oapi.dingtalk.com/robot/send?access_token=' + token_dd

headers = {'Content-Type': 'application/json;charset=utf-8'}

data = {

"msgtype": "markdown",

"markdown": {

"title": "定时推送",

"text": "策略定时推送中,当前可操作:\n {0} \n 图片若无法查看,[请点击此处]({1}) \n\n请谨慎操作!!\n".format(md_pic_url, pic_url)

},

"at": {

"isAtAll": at_all

},

}

res = requests.post(url, data=json.dumps(data), headers=headers)

print(res.text)

  上述代码中有四个参数需要设置,分别是:token_dd、md_pic_url、pic_url、at_all,分别说明:

  需要注意的是,你的通知内容需要收录上一步设置的关键字。比如我把标题的名字设置为关键字进行常规推送

  以上操作设置成功后,运行代码后,你的钉钉群会收到如下消息通知:

  

  图片下方有蓝色超链接,请点击这里。当钉钉群的图片因网络波动无法显示时,群用户可以点击此链接查看。

  是不是很方便?

  

  

  以上就是本期的全部内容。有兴趣的同学可以练习一下,也欢迎其他有更好方法的同学分享,下节见!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线