🆔作者简介:盐焗小星球_wyb,一名电子信息大学生.
📑 个人主页:盐焗小星球_wyb的主页👀
📫 如果文章知识点有错误的地方,请指正!和大家一起学习进步
🔥 如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏
文章目录
前言一、安装PyCharm二、个性DIY—新增API接口1.申请新增API2.将对接好的api放入主程序3.运行程序三、部署到Github(有延时)1.新建仓库2.上传文件3.实现自动推送四、部署到服务器(准时)1.获取一台服务器2.去连接服务器3.安装python和requests包4.设置定时任务总结前言
提示:这里是本文的前言:
这篇文章是基于Github这个博主,根据自己的想法改编完善的(十分详细),大家有兴趣的话可以去看一下原创:/erwanjun/weixin_tuisong
本篇博客的文件获取地址:/s/YEkPQQN4KUE
提取码:29uo
提示:以下是本篇文章正文内容
一、安装PyCharm
一、PyCharm官网地址:/pycharm/ 二、Python3及PyCharm 的安装教程 三、Python-3.9.13-amd64.exe 提取码1w7k
二、个性DIY—新增API接口
1.申请新增API
点击参考代码
选择python
把这串代码复制下来,然后进行测试!
先独立开一个.PY,测试参考代码没有问题后再放进main.py!!!
这里我们用PyCharm双击打开main.py文件 ,在tuisong文件下找到一个ceshi.py,来调试这个api接口!
a、把上面这串串参考代码复制进去,然后在第6行中把你的APIKEY替换成我们在前面申请的key,如下图所示
b、由于api返回的格式为json格式,我们需要把它转换成字典格式,这里需要引用json库,在代码最前面加入 import json,并且加入一句
import json
data = json.loads(data)
将它转换成字典格式
c、然后我们提取"content",通过观察之前的输出结果,我们很容易发现,"content"被放在一个字典里面,然后这个字典又被放在了列表里面,这个列表又被作为最外层字典键"newslist"的值。所以我们通过下标方式提取:
data["newslist"][0]["content"]
如下图所示:
这次再运行Run Code,我们会发现它已经输出正常了:
我们发现它确实成功请求到了舔狗日记,只要提取到参数"content"的值就行了!
这里我把源代码贴出来,你们加入自己的KEY,可以自行测试:
# -*- coding: utf-8 -*-import http.client, urllibimport json#引入json库conn = http.client.HTTPSConnection('') #接口域名params = urllib.parse.urlencode({'key':'在这里填入你自己的KEY'})headers = {'Content-type':'application/x-www-form-urlencoded'}conn.request('POST','/dujitang/index',params,headers)res = conn.getresponse()data = res.read()print(data.decode('utf-8'))data = json.loads(data) #转换成字典print (data["newslist"][0]["content"])
将对接好的api放入主程序
2.将对接好的api放入主程序
首先我们观察主程序main.py
发现有几个主要流程
1、编写获取api的函数
2、将函数返回值赋予给自定义变量
3、将变量作为参数放进post
总体比较简单,这里直接给出我改编的函数
#舔狗日记def tiangou():if (tiangou != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key': tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""
a、同时要记得在main.py开头位置引入我们需要的库
import http.client, urllibimport json
如图所示:
b、定义一个tiangou()函数,把API接口引入到主函数
#舔狗日记def tiangou():if (tiangou_API != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key':tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""
如图所示:
c、在下面的 #推送信息 def send_message 数组里,添加tiangou变量
def send_message(..., tiangou)
如图所示:
d、然后拉到最底下在 #公众号推送消息 send_message 数组里面,添加 tiangou 变量
# 公众号推送消息for user in users:send_message(..., tiangou)
这里多了一些pipi,pop,tip,都不用管,这个是我自己加入的其他的api,你们只需要加入一个dog_diary就好啦。加多了会报错,记得直接在末尾加上就好。
在 # 公众号推送消息 上面类比添加,如下内容:
#舔狗日记tiangou = tiangou()
并在上面几行添加,如下内容:
#舔狗日记tiangou_API= config["tiangou_API"]
如图所示:
e、最后,我们找到打包post的函数
直接在最底下,或者中间,仿照上面,加入一个 “tiangou”
"tiangou":{"value": tiangou,"color": get_color()},
如图所示:
记得放在最后面的话,花括号后面不要逗号。
至此,api接入已经全部完成。
在保证消息模板中有{{tiangou.DATA}},并且config.txt文件填写无误的情况下就可以运行了!
3.运行程序
运行结果如下:
最后将Python文件打包为exe程序
pip3 install pyinstaller`
pyinstaller -F
测试好后弄到配置文件里去:
定义一个tiangou()函数
#舔狗日记def tiangou():if (tiangou_API != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key':tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""
在main最下面的# 公众号推送消息 send_message数组里面,添加tiangou变量
# 公众号推送消息for user in users:send_message(..., tiangou)
在 # 公众号推送消息 上面类比添加,如下内容:
#舔狗日记tiangou = tiangou()
并在上面几行添加,如下内容:
#舔狗日记tiangou_API= config["tiangou_API"]
在上面 #推送信息 def send_message 数组里,添加tiangou变量
def send_message(..., tiangou)
在 #推送信息 里的 data 数组里类比添加,如下内容:
"tiangou":{"value": tiangou,"color": get_color()},
#舔狗日记APItiangou_API=config["tiangou_API"]
三、部署到Github(有延时)
1.新建仓库
2.上传文件
3.实现自动推送
替换成下面的内容:
name: weixinon:workflow_dispatch:schedule: # 代表国际标准时间4点0分,北京时间需要+8小时,代表北京时间中午12点运行- cron: '0 4 * * *'jobs:#将工作流程中运行的所有作业组合在一起build:#定义名为 build 的作业。 子键将定义作业的属性 runs-on: ubuntu-latest steps:- uses: actions/checkout@v2- name: Set up Python 3.9uses: actions/setup-python@v2with:python-version: 3.9.1- name: Set timezonerun: |cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime- name: install pip packagesrun: |python -m pip install --upgrade pippip3 install -r requirements.txt- name: weixinrun: |python3 main.py
其中倒数第三行这里的name:后面填写你创建的这个仓库的名字,我这里就填写type—haodi
点击Star commit后,点击Commit a new file就可以了
点击Code回到看到这样的界面,就完成自动推送了!
四、部署到服务器(准时)
1.获取一台服务器
白嫖三个月云服务器,用的是腾讯云服务器,地址为:/
注册和实名完成之后,进入如下界面:
点击云产品 — 云服务器
点击查看更多优惠
进入如下界面,一直往下划
找到如下界面
点击云产品 — 轻量应用服务器
出现如下界面往下滑
这里给大家说明一下,版本的系统会闪退,且运行不了程序,原因不清楚,博主搞了好久,然后这里给大家的建议是:重装系统。具体操作如下:
找到镜像,点击重装系统
选择R2版本,重装系统就好啦!
重装系统,需要几分钟,耐心等待一下就好了,可能需要重新修改一下密码!
2.去连接服务器
出现这个界面,就代表登录成功我们的服务器啦!
(当然里面是没有任何软件的,图中的是我刚下的)
3.安装python和requests包
在你的远程服务器上也需要安装python和request包还有配置系统变量,可以直接在服务器中打开浏览器安装,和在自己电脑上操作一模一样
官方网站: /getit/
由于是外国网站,比较慢博主给你准备好啦!Python-3.10.6-amd64 提取码k3x8
安装requests包操作如下:
Win+R输入cmd,执行以下命令:
pip3 install requests
大家也可以,通过IDE安装,如pycharm!
检查是否安装完成,在cmd状态栏输入:
pip install requests
出现下面这样界面,就代表安装好啦!!
4.设置定时任务
你可以直接把你电脑里面的代码文件夹都复制进去(改源码的),或者直接复制下面这两个文件(有EXE文件)
因为windows定时任务不能直接执行.py文件,所以我们需要创建一个.bat文件,首先我们要在服务器上创建一个文本文件(.txt文件)(记得要放在与main.py/exe文件同一个文件夹里面),在里面输入
python main.py
然后进行重命名,我这里重命名为run.bat文件。
关于如何改 .bat 文件,参考如下:
点击文件扩展名
然后我们就可以开心的设置定时任务啦!
点击创建基本任务
设计名称微信推送
点击下一步,选择每天
点击下一步,设置时间
点击下一步,选择启动程序
点击下一步,选择程序或脚本这里填入你运行代码的run.bat文件
起始于也要填,填你放run.bat的文件夹
文件夹地址可以直接复制
这一步完成后直接点击完成!我们还需要设置启动程序权限,点击刚刚创建任务的属性
勾选不管用户是否登录都要运行和使用最高权限运行,配置选择你的服务器配置(用电脑的选用自己电脑配置)
全部完成后点击确定,然后输入VNC密码就可以啦!全部完成~
总结
最后,希望大家,一键三连,就是对博主的最大支持了!再次声明本篇博客是我对原创作者,补充!!
如果觉得《【微信推送】微信专属推送——改源码教程》对你有帮助,请点赞、收藏,并留下你的观点哦!