微信机器人的构建与使用

news2025/1/18 9:56:30

一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : 3435673055@qq.com

Time of completion:2022.12.15
Last edited: 2022.12.15

目录

《微信机器人》程序使用说明

微信机器人使用说明

1.项目说明

2.  系统环境

3.准备条件

4.操作步骤

部分代码:


《微信机器人》程序使用说明

首先启动Flask项目,然后启动小米球内网穿透工具,最后配置好微信公众平台。准备就绪,进入微信公众平台。

在微信公众平台输入“笑话”,将获取一条笑话信息,运行效果如图1所示。输入“城市天气”,将获取城市天气信息,运行结果如图2所示。输入其他文字,将对字符串进行反转,运行效果如图3所示  

                         图1  笑话功能            

 

                      图2  查天气功能

微信机器人使用说明

说明:本配置说明,需要保证他人可以按照步骤完整操作,并运行起来!不限于以下4个步骤,需要根据语言、程序实际情况进行删减!!!

1.项目说明

  • 项目名称:微信机器人
  • 作者:Jacky Li
  • 项目版本:V 1.0
  • 版本变化:无
  • 完成日期:2022.12.15

2.  系统环境

Windows 7 及以上/Linux/MacOS

MySQL5.5以上

Python3.6以上版本

其他Python库:

requests==2.18.4
lxml==4.2.5
flask==0.12.2

3.准备条件

       运行本项目,需要如下前提条件:

◆ 微信公众平台订阅号

◆ 小米球ngrok内网穿透工具(下载安装步骤参见正文)

4.操作步骤

1)启动虚拟,步骤如下:

a. 安装虚拟环境,使用如下命令:

pip install virtualenv

b. 创建虚拟环境

wechat_rebot目录下,创建venv虚拟环境,命令如下:

virtualenv  venv

c.启动venv虚拟环境,命令如下:

venv\script\activate

部分代码:

def get_weather(keyword):
    url = 'https://www.tianqi.com/tianqi/search?keyword=' + keyword
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }
    response = requests.get(url,headers=headers)
    tree = etree.HTML(response.text)
    # 检测城市天气是否存在
    try:
        city_name = tree.xpath('//dd[@class="name"]/h2/text()')[0]
    except:
        content = '没有该城市天气信息,请确认查询格式'
        return content
    week = tree.xpath('//dd[@class="week"]/text()')[0]
    now = tree.xpath('//p[@class="now"]')[0].xpath('string(.)')
    temp = tree.xpath('//dd[@class="weather"]/span')[0].xpath('string(.)')
    shidu = tree.xpath('//dd[@class="shidu"]/b/text()')
    kongqi = tree.xpath('//dd[@class="kongqi"]/h5/text()')[0]
    pm = tree.xpath('//dd[@class="kongqi"]/h6/text()')[0]
    content = "【{0}】{1}天气\n当前温度:{2}\n今日天气:{3}\n{4}\n{5}\n{6}".format(city_name, week.split('\u3000')[0], now, temp, '\n'.join(shidu),kongqi,pm)
    return content

通过api获得要查询地区的天气。

def get_joke():
    url="http://www.qiushibaike.com/text/page/"+ str(randint(1,5))
    r = requests.get(url)
    tree = etree.HTML(r.text)
    contentlist = tree.xpath('//div[@class="content"]/span')
    jokes = []
    for content in contentlist:
        content = content.xpath('string(.)') # string() 函数将所有子文本串联起来,# 必须传递单个节点,而不是节点集。
        if '查看全文' in  content:  # 忽略包含“查看原文”笑话
            continue
        jokes.append(content)
    joke = jokes[randint(1, len(jokes))].strip()
    return joke

同理,通过api获得笑话,并通过微信公众号进行对用户的展示。

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

如果需要源码请找博主私聊一下叭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+MySQL基于SSH的扶贫信息管理系统 开题 毕业设计

扶贫信息管理系统采用了B/S(浏览器/服务器)体系结构,JAVA作为开发语言,MySQL作为数据存储进行开发,Tomcat作为WEB服务器,开发平台windows,开发工具采用比elicpse更好用的myeclipse。系统角色分为用户和管理员,主要模块有:县管理模块、贫困户管理模块、扶贫文件管理模…

B站试用期刚过,被HR和大老板一起谈话,说我工作没任何问题,但今晚必须走人!...

最近B站的裁员消息大家关注了吗?一位B站的新员工哭诉:试用期刚过,就被HR和大老板一起谈话,说他工作态度、工作能力、工作产出都没有任何问题,但必须在12.16号走人!他不接受,争辩了很久&#xff…

鉴源论坛 · 观模丨AUTOSAR调度表可调度性的形式化分析

作者 | 郭建 上海控安可信软件创新研究院特聘专家 版块 | 鉴源论坛 观模 汽车上大量软件和电子控制单元(ECU,Electronic Control Unit)的使用导致了汽车电子架构变得更为复杂,现如今从工厂生产的汽车更像是带轮子的电脑。现代汽车由大约50到…

Java+MySQL基于ssm的物理竞赛管理系统 开题 论文

物理竞赛是对课堂上所学的理论知识的实践运用,加深所学知识的理解,锻炼团队协作能力。学生可以根据个人爱好,个人特长选择参与,不仅能培养学生的创新意思、提高专业技能,还能锻炼学生的组织能力和协作能力。物理竞赛是在中国科协的领导下,由中国物理学会主办,各省、自治区、直辖…

windows11-IIS和nginx部署 vue3项目

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 IIS部署vue3项目一、IIS 安装二、解决404问题三、windows环境下安装/使用 nginx提示:以下是本篇文章正文内容,下面案例可供参考 一、IIS 安装 https…

Ac-Nle-P-Nle-D-AMC

Ac-nLPnLD-AMC, substrate for proteasome.Ac-nLPnLD-AMC,蛋白酶体底物。 编号: 185966中文名称: 蛋白酶体底物:Ac-Nle-Pro-Nle-Asp-7-氨基-4-甲基香豆素CAS号: 355140-49-7单字母: Ac-Nle-P-Nle-D-AMC三字母: Ac-Nle-Pro-Nle-Asp-AMC氨基酸个数: 4分子式…

高压放大器怎么选择型号的(高压放大器选型标准规范最新版)

高压放大器一般是指能够产生最大功率输出以驱动特定负载的装置,这是电子测量行业比较常见的一种仪器,可以对信号源的电压信号进行放大。 ATA-2000系列电压放大器选型指南: 高压放大器特点介绍: 1、可以输出1W以上更大的功率。 2、…

ReplicaSet和Deployment

ReplicaSet和Deployment 写在前面 语雀原文阅读效果更佳:198 ReplicaSet和Deployment 语雀 《198 ReplicaSet和Deployment》 1、ReplicaSet 假如我们现在有一个 Pod 正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营…

[思考进阶]03 每一个成年人都应该掌握的学习技巧

除了要提升自己的技术能力,思维的学习和成长也非常非常重要,特推出此[思考进阶]系列,进行刻意练习,从而提升自己的认知。 这世间有两种人:一种被誉为天之骄子,拥有那种天才的创造能力,这种人极少…

React 入门:使用 Express 快速搭建web服务

文章目录什么是 ExpressExpress 用来做什么安装 Express创建 web 服务器启动服务器访问服务器什么是 Express 官方概念 Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。通俗理解 Express 的作用和 Node.js 内置的 http 模块类似,是专门…

最近更换系统盘踩了不少坑,主要是软件运行错误,造成原成原系统盘被损毁

更换系统盘应该注意的问题: PE系统要是经过测试的系统,这次损毁的PE我很信任,但是有个克隆软件,今天一用就损毁了,他的名字是“Acronis True Image",不建议用他克隆整盘。 推荐几个经过严格测试的好用的PE&#…

我们公司使用了6年的Spring Boot项目部署方案,打包 + 一键部署,稳的一批

时间就如白驹过隙,转眼间已经是 2028 年了。小二入职一家初创公司已经 6 年了,眼瞅着开发团队从 3 个人壮大到 54 人,心里有时候会感觉挺不可思议的。 这些年,身边的同事来了又去,有些刚熟悉没多久,就因为…

java 项目之瑞吉外卖 笔记1 软件开发整体介绍 员工登录功能 登录过滤器设置

软件开发流程 角色分工 软件环境 开发环境搭建 创建工程 application.yml: server:port: 80 spring:application:name: reggie_takedatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/r…

GitHub日排行第二名!手把手刷算法项目fucking-algorithm,干翻算法

今天给大家分享一个开源项目,在 GitHub 排行榜上今天特别火,都爬到了日排行榜的第二名。 大家想知道,面试互联网大厂,必面的是什么吗?当然是算法。作为程序员,互联网大厂的面试,算法是最重要的…

如何进行系统设计

文章目录1. 理解需求1.1 功能性需求1.2 非功能性需求2. 系统设计3. Api设计4. 数据模型设计5. 高可用、高性能、可监控等数据密集型应用设计凤凰架构 重点:自己整理的非权威,不具代表性,自己去取舍哈。 1. 理解需求 1.1 功能性需求 解决什么…

Python -- 流程控制语句

目录 1、条件判断语句 1.1 if语句的使用 1.2 if...else语句的使用 1.3 if...elif...else语句的使用 2、循环语句 2.1 while语句 2.2 for语句 3、break和continue 4、循环中else的使用 1、条件判断语句 1.1 if语句的使用 if语句是用来进行判断的,其使用格式…

大一学生《基于HTML+CSS制作体育篮球网页》期末网页制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

如何在 PDF 中搜索并准确找到您要查找的文本内容

您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了。或者必须在很长的文本中找到特定的单词或短语。或者很长的 PDF。 它不方便、耗时,如果时间紧迫则更糟。 幸运的是,大多…

tensorflower delegate介绍

为什么要使用delegate delegate是什么意思? 性能优化的方法: 量化剪枝权重聚集利用硬件加速器 其中,当我们使用硬件加速器的时候,可以获得相应硬件的特性,提高性能,降低功耗。但是硬件加速器有很多种&am…

【外汇天眼】外汇市场交易基本面分析:什么是利率平价(IRP)?

利率平价(平价Interest RateParity,也称为IRP利息率,是指外汇市场在所有可自由兑换货币的预期回报率相同时所能提供的平衡条件。 利率平价规定,一种货币对另一种货币的升值(贬值)必须由利率差异的变化抵销…