作者简介:盐焗小星球_wyb,一名电子信息大学生.
个人主页:盐焗小星球_wyb的主页
如果文章知识点有错误的地方,请指正!和大家一起学习进步
如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏
提示:这里是本文的前言:
这篇文章是基于Github这个博主,根据自己的想法改编完善的(十分详细),大家有兴趣的话可以去看一下原创:https://github.com/erwanjun/weixin_tuisong
本篇博客的文件获取地址:https://www.aliyundrive.com/s/YEkPQQN4KUE
提取码:29uo
提示:以下是本篇文章正文内容
一、PyCharm官网地址:https://www.jetbrains.com/pycharm/
二、Python3及PyCharm 的安装教程
三、Python-3.9.13-amd64.exe 提取码1w7k
点击参考代码
选择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, urllib
import json #引入json库
conn = http.client.HTTPSConnection('api.tianapi.com') #接口域名
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放入主程序
首先我们观察主程序main.py
发现有几个主要流程
1、编写获取api的函数
2、将函数返回值赋予给自定义变量
3、将变量作为参数放进post
总体比较简单,这里直接给出我改编的函数
#舔狗日记
def tiangou():
if (tiangou != "替换掉我"):
conn = http.client.HTTPSConnection('api.tianapi.com') # 接口域名
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, urllib
import json
b、定义一个 tiangou() 函数,把API接口引入到主函数
#舔狗日记
def tiangou():
if (tiangou_API != "替换掉我"):
conn = http.client.HTTPSConnection('api.tianapi.com') # 接口域名
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文件填写无误的情况下就可以运行了!
pip3 install pyinstaller`
pyinstaller -F
测试好后弄到配置文件里去:
定义一个 tiangou() 函数
#舔狗日记
def tiangou():
if (tiangou_API != "替换掉我"):
conn = http.client.HTTPSConnection('api.tianapi.com') # 接口域名
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()
},
#舔狗日记API
tiangou_API=config["tiangou_API"]
name: weixin
on:
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.9
uses: actions/setup-python@v2
with:
python-version: 3.9.1
- name: Set timezone
run: |
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- name: install pip packages
run: |
python -m pip install --upgrade pip
pip3 install -r requirements.txt
- name: weixin
run: |
python3 main.py
其中倒数第三行这里的name:后面填写你创建的这个仓库的名字,我这里就填写 type—haodi
点击 Star commit 后,点击 Commit a new file 就可以了
点击 Code回到看到这样的界面,就完成自动推送了!
白嫖三个月云服务器,用的是腾讯云服务器,地址为:https://cloud.tencent.com/
注册和实名完成之后,进入如下界面:
点击 云产品 — 云服务器
找到如下界面
点击 云产品 — 轻量应用服务器
出现如下界面往下滑
这里给大家说明一下,2022版本的系统会闪退,且运行不了程序,原因不清楚,博主搞了好久,然后这里给大家的建议是:重装系统。具体操作如下:
找到 镜像,点击 重装系统
选择2012R2版本,重装系统就好啦!
重装系统,需要几分钟,耐心等待一下就好了,可能需要重新修改一下密码!
出现这个界面,就代表登录成功我们的服务器啦!
(当然里面是没有任何软件的,图中的是我刚下的)
在你的远程服务器上也需要安装python和request包还有配置系统变量,可以直接在服务器中打开浏览器安装,和在自己电脑上操作一模一样
官方网站: https://www.python.org/getit/
由于是外国网站,比较慢博主给你准备好啦!Python-3.10.6-amd64 提取码k3x8
安装requests包操作如下:
Win+R 输入 cmd,执行以下命令:
pip3 install requests
大家也可以,通过IDE安装,如pycharm!
检查是否安装完成,在cmd状态栏输入:
pip install requests
你可以直接把你电脑里面的代码文件夹都复制进去(改源码的),或者直接复制下面这两个文件(有EXE文件)
因为windows定时任务不能直接执行.py文件,所以我们需要创建一个.bat文件,首先我们要在服务器上创建一个文本文件(.txt文件)(记得要放在与main.py/exe文件同一个文件夹里面),在里面输入
python main.py
然后进行重命名,我这里重命名为run.bat文件。
关于如何改 .bat 文件,参考如下:
点击文件扩展名
然后我们就可以开心的设置定时任务啦!
点击 创建基本任务
设计名称 微信推送
点击 下一步,选择 每天
点击 下一步,设置 时间
点击 下一步,选择 启动程序
点击 下一步 ,选择 程序或脚本 这里填入你运行代码的run.bat文件
起始于 也要填,填你放run.bat的文件夹
文件夹地址可以直接复制
这一步完成后直接点击完成!我们还需要设置启动程序权限,点击刚刚创建任务的属性
勾选不管用户是否登录都要运行和使用最高权限运行,配置选择你的服务器配置(用电脑的选用自己电脑配置)
最后,希望大家,一键三连,就是对博主的最大支持了!再次声明本篇博客是我对原创作者,补充!!