用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话 (2)

superagent/index.js

const superagent = require('../config/superagent') const config = require('../config/index') const cheerio = require('cheerio') async function getOne() { // 获取每日一句 let res = await superagent.req(config.ONE,'GET') let $ = cheerio.load(res.text) let todayOneList = $('#carousel-one .carousel-inner .item') let todayOne = $(todayOneList[0]).find('.fp-one-cita').text().replace(/(^\s*)|(\s*$)/g, "") return todayOne; } async function getWeather() { //获取墨迹天气 let url = config.MOJI_HOST+config.CITY+'http://www.likecs.com/'+config.LOCATION let res = await superagent.req(url,'GET') let $ = cheerio.load(res.text) let weatherTips = $('.wea_tips em').text() const today = $('.forecast .days').first().find('li'); let todayInfo = { Day:$(today[0]).text().replace(/(^\s*)|(\s*$)/g, ""), WeatherText:$(today[1]).text().replace(/(^\s*)|(\s*$)/g, ""), Temp:$(today[2]).text().replace(/(^\s*)|(\s*$)/g, ""), Wind:$(today[3]).find('em').text().replace(/(^\s*)|(\s*$)/g, ""), WindLevel:$(today[3]).find('b').text().replace(/(^\s*)|(\s*$)/g, ""), PollutionLevel:$(today[4]).find('strong').text().replace(/(^\s*)|(\s*$)/g, "") } let obj = { weatherTips:weatherTips, todayWeather:todayInfo.Day + ':' + todayInfo.WeatherText + '<br>' + '温度:' + todayInfo.Temp + '<br>' + todayInfo.Wind + todayInfo.WindLevel + '<br>' + '空气:' + todayInfo.PollutionLevel + '<br>' } return obj } module.exports ={ getOne,getWeather } 项目运行

由于需要安装chromium, 所以要先配置一下镜像,注意由于wechaty的限制,最好使用node10以上版本

npm

npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/dist npm config set puppeteer_download_host https://npm.taobao.org/mirrors

yarn

yarn config set registry https://registry.npm.taobao.org yarn config set disturl https://npm.taobao.org/dist yarn config set puppeteer_download_host https://npm.taobao.org/mirrors

然后进行项目安装

git clone git@github.com:gengchen528/wechatBot.git cd wechatBot npm install 或 cnpm install

参数配置

wechatBot/config/index.js

// 配置文件 module.exports ={ // 基础定时发送功能配置项(必填项) NAME:'A兔子',//备注姓名 NICKNAME:'嗯哼', //昵称 MEMORIAL_DAY:'2015/04/18', //你和收信者的纪念日 CITY:'shanghai',//收信者所在城市 LOCATION:'pudong-new-district',//收信者所在区 (可以访问墨迹天气网站后,查询区的英文拼写) SENDDATE:'0 0 8 * * *',//定时发送时间 每天8点0分0秒发送,规则见 /schedule/index.js ONE:'http://wufazhuce.com/',////ONE的web版网站 MOJI_HOST:'https://tianqi.moji.com/weather/china/', //中国墨迹天气url //高级功能配置项(非必填项) AUTOADDFRIEND:false,//自动加好友功能 默认关闭 AUTOADDROOM:false,//自动拉群功能 默认关闭 AUTOREPLY:false,//自动聊天功能 默认关闭 AIBOTAPI:'http://www.tuling123.com/openapi/api',//图灵机器人API 注册地址 APIKEY:'你的图灵机器人apikey',//图灵机器人apikey ROOMNAME:'/^你的群名/i', //群名(请只修改中文,不要删除符号,这是正则) ADDFRIENDWORD:'/你要触发的关键词/i',//自动加好友触发的关键词(请只修改中文,不要删除符号,这是正则) ADDROOMWORD:'/加群/',//自动发送群图片触发关键词(请只修改中文,不要删除符号,这是正则) ROOMCODEURL:'http://image.bloggeng.com/qun.png',//群二维码url链接(与本地群二维码路径选填一个) ROOMLOCALPATH:'./static/qun.png',//本地群二维码图片路径(与群url选填一个) }

开始运行

npm run start 然后掏出你的手机,最好使用小号,扫描控制台的二维码即可 待解决问题

由于微信登录和邮件登录不同,所以无法使用进程守护工具,目前没有测试是否能够长时间登录(目前已经解决,第一次需要使用node启动,生成状态维持文件,生成后即可使用pm2等进程守护工具)

因为node的原因,如果发生错误,可能会导致任务无法进行,需要手动重启并登录(已解决)

最好能够使用小号登录,如果是常用微信登录,在电脑客户端登陆后可能会wechaty挤掉

墨迹天气页面在获取的时候可能会存在延时,有时可能获取不到

后续功能

为了防止占用你的微信号,你和你的爱人添加我的微信后。你发送指定内容,我将会每天帮你发送消息(已实现)

添加了图灵机器人聊天功能(已实现)

日常定时小提醒功能 (已实现https://github.com/gengchen528/wechat-assistant)

还有在思考中...(你有好的想法也可以提出来)

最后

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspgpd.html