python实现AI聊天机器人详解流程

 更新时间:2021年11月15日 15:51:12   作者:编程简单学  
事情是这样的,最近认识的一位小姐姐有每天早晨看天气预报的习惯。在我看来,很多人起床第一件事情就是看微信消息,既然这样,我就勉为其难每天早晨给小姐姐发送一则天气预报吧

前言

开始几天,我是使用很原始的方法,自己去获取天气预报截图,再手动发送给小姐姐。连续几天之后我一想:不对呀,我怎么说也是一个程序猿,怎么能用这么 low 的方式呢。

联想起之前看到的一个开源 python 库—— wxpy,一个非常强大的微信 api 调用类库,正好满足我当前的需要,那话不多说,开干。

任务分解

  • 调用微信 api 发送简单消息
  • 获取当日天气预报截图信息
  • 设置定时任务

调用微信 api 发送简单消息

本程序主要是通过 wxpy 库使用的,参考其官网文档,我们需要做如下准备工作:

1.Python 环境(本人使用的是 mac 自带的 python2.7)

2.安装 wxpy 库

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"(国内用户使用豆瓣的源)
复制代码

获取聊天对象,发送消息

我们先试着获取文件传输助手,拿它练练手

from wxpy import *# 初始化一个机器人对象bot = Bot()# 获取文件传输助手file_helper = bot.file_helper# 向文件传输助手发送消息file_helper.send('Hello')
复制代码

通过昵称获取指定微信好友

# 获取昵称为 『志明』,这边的昵称指你给的好友备注friend = bot.friends().search('志明')friend.send(u'Hello 志明') #在字符前面加上 u 为了避免编码转换的异常,因为存在中文
复制代码

获取当日天气预报截图信息

国内天气网的 api 很多,我找了一个简单易用的天气查询网站——中国天气

img

我的需求是把网页中红框圈起来的内容截取,转化成图片,一搜索还真的找个这么一个神器——webkit2jpg,官网地址

webkit2jpg

这是 linux 环境下,能够把网页内容转成图片的命令行工具,mac 可以直接通过 brew 安装

brew install webkit2png
复制代码

拿 google 主页练练手,在命令行输入如下命令,这边有个小问题,webkit2jpg 默认必须使用 https 的链接,需要手动修改一下 webkit2jpg 的程序,可以参考链接 参考链接

webkit2png http://www.google.com/
复制代码

可以在当前执行命令行的目录当中发现 google 主页图片

img

那我想要截取页面的某个部分转换成图片呢,webkit2jpg 完全 ok,查看使用文档之后发现它是可以传入 CSS选择器参数

img

通过 chrome 浏览器的调试工具,可以很容易的找到指定区域的网页元素所对应的选择器

img

来试试看通过选择器进行网页截图,在命令行输入如下指令,可以看到对应的网页截图

webkit2png --ignore-ssl-check --selector=#today http://www.weather.com.cn/weather1d/101020100.shtml\#search
复制代码

img

设置定时任务

万事俱备,只欠东风,我们来设定一个定时的 job,这边我是用的是 BlockingScheduler 库,非常简单易用

if __name__ == '__main__': from apscheduler.schedulers.blocking import BlockingScheduler sched = BlockingScheduler()
# 设置保活 job,这个 job 每 10 秒给我自己发送一条消息 # 让微信机器人长期处于一个在线的状态 sched.add_job(keep_online, 'interval', seconds=10) # 设置定时发送天气预报的任务,通过 cron 表达式,指定发送周期为周一至周五每天早上 6:30 sched.add_job(weather_notification, 'cron', day_of_week='1-5', hour=6, minute=30) sched.start()
复制代码

这边有个小技巧,由于首次启动微信聊天机器人需要扫码登录,因此 wxpy 提供了缓存功能,意味着可以让微信保持长期在线,不用重复扫码登录

# 实例化机器人对象时,指定 cache_path 参数启动缓存功能,qr_path 则是二维码路径bot = Bot(console_qr=2, cache_path=True, qr_path='wepy.pkl')

到此这篇关于python实现AI聊天机器人详解流程的文章就介绍到这了,更多相关Python 聊天机器人内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中for循环可迭代对象迭代器及生成器源码学习

    Python中for循环可迭代对象迭代器及生成器源码学习

    这篇文章主要为大家介绍了Python中for循环可迭代对象迭代器及生成器的源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python中的条件赋值判断语句语法

    python中的条件赋值判断语句语法

    这篇文章主要介绍了python条件赋值判断语句语法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python遗传算法之geatpy的深入理解

    python遗传算法之geatpy的深入理解

    本文主要介绍了python遗传算法之geatpy的深入理解,主要从geatpy中的各种数据结构一步一步进行学习,具有一定的参考价值,感兴趣的可以了解一下
    2022-04-04
  • 基于Python PaddleSpeech实现语音文字处理

    基于Python PaddleSpeech实现语音文字处理

    PaddleSpeech基于飞桨PaddlePaddle的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。本文将介绍如何通过PaddleSpeech实现语音文字处理,感兴趣的可以学习一下
    2022-01-01
  • Python中的列表知识点汇总

    Python中的列表知识点汇总

    这篇文章主要总结了一些Python中的列表的知识点,来自于IBM官网技术文档,需要的朋友可以参考下
    2015-04-04
  • Pytorch中的数据集划分&正则化方法

    Pytorch中的数据集划分&正则化方法

    这篇文章主要介绍了Pytorch中的数据集划分&正则化方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python xlwt如何设置单元格的自定义背景颜色

    python xlwt如何设置单元格的自定义背景颜色

    这篇文章主要介绍了python xlwt如何设置单元格的自定义背景颜色,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 分析python并发网络通信模型

    分析python并发网络通信模型

    随着互联网和物联网的高速发展,使用网络的人数和电子设备的数量急剧增长,其也对互联网后台服务程序提出了更高的性能和并发要求。本文主要分析比较了一些模型的优缺点,并且用python来实现
    2021-06-06
  • python实现人机猜拳小游戏

    python实现人机猜拳小游戏

    这篇文章主要为大家详细介绍了python实现人机猜拳小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Python利用psutil获取CPU与内存等硬件信息

    Python利用psutil获取CPU与内存等硬件信息

    psutil是Python的一个第三方库,提供了各种强大的硬件信息查阅功能,这篇文章主要为大家介绍了如何利用psutil获取CPU与内存等硬件信息,需要的可以参考一下
    2023-07-07

最新评论