起因
我在github上看到一个自动点击墨墨记单词分享连接的Python程序,正好近来有在慢慢看Python的视频,于是疯狂补课,直接跳到了视屏课的框架部分orz,看完后并没有记住大多数的代码,操作步骤倒是模糊的记得。
开始动手
在电脑上安装Py环境,很顺利。在服务器上安装了Python3.7.2环境,由于一开始是Py2的环境运行着这个网站面板,造成了不小的麻烦。
在成功运行了这个程序后,我的电脑被http代理网站ban了,无论如何打不开代理网站,好在服务器没有被ban,于是在电脑端的测试急急忙忙搬到了服务器。运行的很好,但问题是每天都需要我手动把链接和一小部分固定的命令敲进去,觉得很麻烦。
是否可以使用公众号接收消息,如果公众号收到了消息,将消息转发给服务器,然后服务器自动拼接命令后储存到一个txt文件。再使用Shell脚本定时运行这个文件,运行完毕自动清空文件,等待着下一次的记录。
#接入微信公众平台 import falcon from wechatpy.utils import check_signature from wechatpy.exceptions import InvalidSignatureException from wechatpy import parse_message from wechatpy.replies import TextReply, ImageReply class Connect(object): def on_get(self, req, resp): query_string = req.query_string query_list = query_string.split('&') b = {} for i in query_list: b[i.split('=')[0]] = i.split('=')[1] try: check_signature(token='这里是token', signature=b['signature'], timestamp=b['timestamp'], nonce=b['nonce']) resp.body = (b['echostr']) except InvalidSignatureException: pass resp.status = falcon.HTTP_200 def on_post(self, req, resp): xml = req.stream.read() msg = parse_message(xml) if msg.type == 'text': reply = TextReply(content="服务器已收到!请勿重复发送。", message=msg) b = msg.content xml = reply.render() resp.body = (xml) resp.status = falcon.HTTP_200 a = "前缀" #这里是一个命令拼接,可能并不是全部适用 c = "后缀" link = a + b + c with open('link.txt','r') as f: f = open('记录拼接好的命令txt文件路径','a',encoding='utf-8') f.write(str(link)+'\n') f.close() app = falcon.API() connect = Connect() app.add_route('/', connect)
#有关requirements.txt的文件 certifi==2018.4.16 chardet==3.0.4 falcon==1.4.1 idna==2.6 numpy==1.14.5 opencv-python==3.4.1.15 optionaldict==0.1.1 Pillow==5.1.0 pycrypto==2.6.1 python-dateutil==2.7.3 python-mimeparse==1.6.0 requests==2.18.4 six==1.11.0 urllib3==1.22 waitress==1.1.0 wechatpy==1.7.0 xmltodict==0.11.0
在微信公众号接入页面设置好token。,在代码里填写token,使用uwsi方式运行程序后。发送消息给公众号,公众号立刻返回了“服务器已收到!”测试通过。
然后添加了两条Shell命令。并且定时。
清空文件的Shell命令:cat /dev/null > (文件路径)
运行文件的Shell命令:eval $(cat 路径)
至此就解决啦,但是这么多东西结合的方式,实在是繁琐。实在是技术不够就拿各种东西来凑。