巧用自动化,抓取信息并发送微信消息

栏目: Node.js · 发布时间: 5年前

内容简介:在微信群中,经常有一些微信群主定时发送一些快报。本次将给介绍给大家一种使用自动化实现类似功能的微信机器人的方法。网站https://news.ycombinator.com/作为专业hacker 获取信息信息的重要来源,有不少人经常访问它。今天教大家做的自动化,是通过自动化的方式将此网站的当前内容保存到PDF文件中,之后发送到微信群分享给群友。原理大致如下:

在微信群中,经常有一些微信群主定时发送一些快报。本次将给介绍给大家一种使用自动化实现类似功能的微信机器人的方法。

实现功能介绍

网站https://news.ycombinator.com/作为专业hacker 获取信息信息的重要来源,有不少人经常访问它。今天教大家做的自动化,是通过自动化的方式将此网站的当前内容保存到PDF文件中,之后发送到微信群分享给群友。

原理大致如下:

巧用自动化,抓取信息并发送微信消息

使用到的工具

主要代码实现

打开CukeTest,根据业务需求编辑feature文件:

# language: zh-CN
功能: 自动化微信
自动抓取hacker news 保存为pdf并分享到微信群。

  @puppeteer
  场景: 使用puppeteer自动抓取Hacker News并保存为pdf
    假如使用puppeteer打开"https://news.ycombinator.com/"
    同时将当前页面内容保存为到PDF文件中

  @WeChat
  场景: Windows桌面微信发送群
    假如打开微信群,选择文档
    当打开pdf文件
    同时点击发送,发送给群友
复制代码

作为行为驱动的脚本,feature文件可以让脚本有非常好的可读性。

巧用自动化,抓取信息并发送微信消息

Puppeteer

Puppeteer是 Google Chrome 团队官方的无界面(Headless)Chrome 工具,它是一个Node.js库,提供了一个高级的 API 来控制DevTools协议上的无头版Chrome。用这个库可以非常方便将页面导出为pdf文档。 具体api可以参考文档: github.com/GoogleChrom…

// 主要实现代码

......

//打开页面
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});

//保存到pdf
await page.pdf({path: 'hn.pdf', format: 'A4'}); 
......
复制代码

相比起通过Selenium调用Chrome,它的优点是更快,功能更加丰富。

CukeTest

CukeTest是Node.js自动化脚本的编辑工具,内置有操作Windows控件的库,操作Windows桌面端微信。

使用方法:

为微信Windows桌面端应用创建对象模型文件,将需要操作的控件添加到模型文件中。关于如何操作Windows控件可以参考免费教学视频( ke.qq.com/course/3473…

调用操作对象API

//主要实现代码

......

Given(/^打开微信群,选择文档$/, async function () {
    await model.getVirtual("发送文件").click(0, 0, 1);
});

When(/^打开pdf文件$/, async function () {

    await model.getEdit("文件名(N):1").set('hn.pdf');
    await model.getGeneric("打开(O)").click(0, 0, 1);
});

 When(/^点击发送,发送给群友$/, async function () {

    await model.getVirtual("发送").click(0, 0, 1);
});

......
复制代码

运行

点击运行按钮即可运行。如果想每天定时运行,可以将这个脚本配置成定时任务或者Jenkins的Job运行。

总结

在这个例子中,我们使用了Node.js + Cucumber的框架,让代码可读性更强,使用了Puppeteer作为自动化库抓取内容,同时使用了CukeTest编辑工具,它同时也提供了Windows自动化的功能。

如果不想发送PDF,也可以用Puppeteer定时截取网页上的文本,发送到微信中,这样实时性更强。

CukeTest赋予你不管是Windows,Web,API还是Mobile应用,都能进行自动化的能力。结合丰富的Node.js开源库,你可以发挥无尽的想象,做各种好玩,有趣的自动化。如果你有好的想法或者自动化过程遇到问题,欢迎来到我们的学习群讨论。 QQ群:707467292


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++数值算法(第二版)

C++数值算法(第二版)

William T.Vetterling、Brian P.Flannery、Saul A.Teukolsky / 胡健伟、赵志勇、薛运华 / 电子工业出版社 / 2005年01月 / 68.00

本书选材内容丰富,除了通常数值方法课程的内容外,还包含当代科学计算大量用到的专题,如求特殊函数值、随机数、排序、最优化、快速傅里叶变换、谱分析、小波变换、统计描述和数据建模、常微分方程和偏微分方程数值解、若干编码算法和任意精度的计算等。 本书科学性和实用性统一。每个专题中,不仅对每种算法给出了数学分析和比较,而且根据作者的经验对算法做出了评论和建议,并在此基础上给出了用C++语言编写的实用程......一起来看看 《C++数值算法(第二版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码