基于Wechaty打造实时爬取产品信息并分享给用户群
1. 主要功能
公司想实现通过爬取walmart的降价信息或者是新入库的产品来提供给客户,方便客户及时地获得这些信息,用来抢购。
- 通过walmart提供的api,用python多线程异步地爬取产品,从而得到降价信息
- python把读取到的产品写入一个具有‘read false’标志位的txt文件中
- wechaty通过设置定时任务读取这个txt文件,并将标志位置为‘read True’
- wechaty处理爬取到的字符串,并将处理后的产品图像,产品信息实时的发送到群聊中
2. Wechaty框架介绍
Weachaty 是一个开源的的对话机器人 SDK,支持个人微信号。它是一个使用Typescript 构建的Node.js 应用。支持多种微信接入方案,包括网页,ipad,ios,windows, android 等。同时支持Linux, Windows, Darwin(OSX/Mac) 和 Docker 多个平台。 在GitHub上可以找到很多支持微信个人号接入的第三方类库,其中大多都是基于Web Wechat的API来实现的,如基于Python的WeixinBot,基于Node.js的Wechaty等。少数支持非Web协议的库,大多是商业私有闭源的,Wechaty是少有的开源项目支持非Web协议的类库。且目前来讲,Wechaty已经开始陆续支持多种编程语言了(Go、Python、Java等等)。官方说只需要6行代码,就可以做到自动管理微信消息了。
import { Wechaty } from 'wechaty'
Wechaty.instance()
.on('scan', qrcode => console.log('扫码登录'))
.on('login', user => console.log('登录成功:' + user))
.on('message', message => console.log('收到消息:' + message))
.on('friendship', friendship => console.log('收到好友请求:' + friendship))
.on('room-invite', invitation => console.log('收到入群邀请:' + invitation))
.start()
可以看到,Wechaty能做到的事情很多,可以收消息、发消息、好友管理、群管理,更多功能可以参考官方文档中文版、英文版英文版的文档更新更全更新。
3. 安装Wechaty
原本一开始我是想着用Python版本的 Wechaty 的,因为爬虫写的也用的是python,这样就可以直接把机器人和爬虫更好的整合,但是python版本的机器人运行时会出现报错,所以就选择了社区更为完善的ts版本。对于typescript语言来说是javascript的一个超集,对于使用过React框架开发的人员来说还是比较友好的。
使用wechaty
我使用的系统是windows10,第一步首先是在github处克隆源码
git clone https://github.com/wechaty/wechaty-getting-started.git
安装完毕进入文件夹目录下,下载相关的依赖