记录一次,小白怎么写一个网站的打卡,签到程序
本帖最后由 haimiandashu 于 2023-7-14 14:05 编辑亲爱的论坛老哥们,大家好!
本人小白一枚,还请大佬轻点喷。
本次为记录写脚本中遇到的问题,以及解决方法。
正文如下:
如图,是一个网站的打卡页面。打卡方式点击链接就会进行打卡操作。好的,接下来我们浅浅抓一下打卡的有关信息。
如果不知道怎么用这里面的信息发送包,可以把他通过一些手段转换成py程序
拿到py程序之后,跑一下试试
发现可以跑起来,但是返回的字符是不太对的,给转换一下
可以了,这样就返回了正确的字了,但是我只想要文字部分,百度了一圈 什么截取字符串,又保留倒数几个字符什么的,操作下来 没成功,所以决定曲线救国
这样就完美解决了。
后来我就想把他打包成EXE文件,每天在电脑上运行一遍,但是觉得不方便。所以把他放在了家里的小主机的 青龙面板上
又想到这个脚本没有通知,所以一不做二不休,问GPT3.5 要了一个微信推送,带图片,文字块的企业微信应用推送
import json
import time
import requests
CORP_ID = "**************"
SECRET = "***************"
class WeChatPub:
s = requests.session()
def __init__(self):
self.token = self.get_token()
def get_token(self):
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"
rep = self.s.get(url)
if rep.status_code != 200:
print("request failed.")
return
return json.loads(rep.content)['access_token']
def send_msg(self, content, image_url):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
header = {
"Content-Type": "application/json"
}
form_data = {
"touser": "********",
"toparty": "1",
"totag": "TagID1 | TagID2",
"msgtype": "news",
"agentid": 1000003,
"news": {
"articles": [
{
"title": "测试提醒",
"description": content,
"url": "URL",
"picurl": image_url
}
]
},
"safe": 0
}
rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)
if rep.status_code != 200:
print("request failed.")
return
return json.loads(rep.content)
if __name__ == "__main__":
wechat = WeChatPub()
timenow = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
image_url = "https://******.com/image.jpg"# 图片的URL
wechat.send_msg(f"{timenow}\n注意!\n今日有新债,坚持打新!", image_url)
print('消息已发送!')
然后就是把上面的程序放在一起,来看看最后的成果吧。
代码放在最后:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :pythonproject
@file :微信推送工控打卡1,带图片文字卡.py
@IDE :PyCharm
@AuThor:海绵的烂笔头
@date :2023-07-14 12:55
'''
import json
import time
import requests
#=========================================以下为工控家人园打卡程序,如果CK失效,只需要替换这部分内容=========================================
cookies = {
#**************************保密
}
headers = {
#**************************保密
}
response = requests.get('http://www.*******/bbs/data/q1.php', cookies=cookies, headers=headers, verify=False)
#=======================================对文件进行编码处理=====================================================
response.encoding = 'gbk'
#=======================================以下为对打印内容的处理,只保留文字=====================================================
if '签到成功' in response.text:
t = '第一次签到成功! 您获得了10点下载积分!'
print(t)
if '已经签到过了' in response.text:
t = '您今天已经签到过了,请明天再来吧!'
print(t)
#==============================================以下为企业微信推送程序=======================================================
CORP_ID = "*******"
SECRET = "********"
class WeChatPub:
s = requests.session()
def __init__(self):
self.token = self.get_token()
def get_token(self):
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"
rep = self.s.get(url)
if rep.status_code != 200:
print("request failed.")
return
return json.loads(rep.content)['access_token']
def send_msg(self, content, image_url):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
header = {
"Content-Type": "application/json"
}
form_data = {
"touser": "******",
"toparty": "1",
"totag": "TagID1 | TagID2",
"msgtype": "news",
"agentid": 1000003,
"news": {
"articles": [
{
"title": "工控家人园第一次打卡通知",
"description": content,
"url": "URL",
"picurl": image_url
}
]
},
"safe": 0
}
rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)
if rep.status_code != 200:
print("request failed.")
return
return json.loads(rep.content)
if __name__ == "__main__":
wechat = WeChatPub()
timenow = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
image_url = "http://********/img/OIP-C.jpg"# 图片的URL
wechat.send_msg(f"{timenow}\n注意!{t}", image_url)
print('消息已发送!')
欢迎各位大佬对我批评指正,前进的路上少不了您的指点。 你比我专业课的老师还要想教会我用python,你真的,我哭死 curl转python失败{:1_924:} 很不错的学习过程 点个赞,这个教程入门看看不错 学习能力太强了· 这个在线工具是哪个地址,能分享下吗 本帖最后由 Arcticlyc 于 2023-7-14 16:18 编辑
请问一下企业微信推送的内容和格式有限制吗(就是要认证才能用之类的),我记得好像要什么可信ip sensenisme 发表于 2023-7-14 15:47
你比我专业课的老师还要想教会我用python,你真的,我哭死
玩的就是真实 Arcticlyc 发表于 2023-7-14 16:16
请问一下企业微信推送的内容和格式有限制吗(就是要认证才能用之类的),我记得好像要什么可信ip
现在好像没有什么限制,我这边是个人注册 也没有绑定什么白名单 直接开袋即食 haimiandashu 发表于 2023-7-14 16:26
现在好像没有什么限制,我这边是个人注册 也没有绑定什么白名单 直接开袋即食
好滴,谢谢回复