AutoCheckBJMF/main.py

104 lines
3.7 KiB
Python
Raw Normal View History

2024-02-29 06:44:15 +00:00
import requests
import re
import time
import os
from bs4 import BeautifulSoup
# 主机用户
ClassID = input("请输入班级ID")
X = input("请输入纬度:")
Y = input("请输入经度:")
ACC = input("请输入海拔:")
2024-03-07 05:45:34 +00:00
SearchTime = int(input("请输入检索时长,建议>60s"))
2024-02-29 06:44:15 +00:00
MyCookie = input("请输入你的Cookie")
token = input("请输入pushplus密钥")
# 输出用户输入的内容
print("开始执行检索")
# GitHub Actions自动任务
# ClassID = os.environ['ClassID']
# X = os.environ['X']
# Y = os.environ['Y']
# ACC = os.environ['ACC']
# SearchTime = os.environ['SearchTime']
# MyCookie = os.environ['MyCookie']
# token = os.environ['e']
# 本地面板运行
#ClassID = ''
#X = ''
#Y = ''
#ACC = ''
#SearchTime = 60
#MyCookie = ''
#token = '' #在pushplus网站中可以找到
title = '班级魔法自动签到任务' # 改成你要的标题内容
url = 'http://k8n.cn/student/course/' + ClassID + '/punchs'
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 12; PAL-AL00 Build/HUAWEIPAL-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160065 MMWEBSDK/20231202 MMWEBID/1136 MicroMessenger/8.0.47.2560(0x28002F35) WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/wxpic,image/tpg,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'X-Requested-With': 'com.tencent.mm',
'Referer': 'http://k8n.cn/student/course/75717',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh-SG;q=0.9,zh;q=0.8,en-SG;q=0.7,en-US;q=0.6,en;q=0.5',
'Cookie': MyCookie
}
while True:
response = requests.get(url, headers=headers)
print("响应:", response)
# 创建 Beautiful Soup 对象解析 HTML
soup = BeautifulSoup(response.text, 'html.parser')
2024-02-29 10:31:57 +00:00
# 使用正则表达式从 HTML 文本中提取所有 punch_gps() 中的数字
2024-02-29 06:44:15 +00:00
pattern = re.compile(r'punch_gps\((\d+)\)')
matches = pattern.findall(response.text)
2024-02-29 10:31:57 +00:00
print("找到GPS定位签到:", matches)
pattern2 = re.compile(r'punchcard_(\d+)')
matches2 = pattern2.findall(response.text)
print("找到扫码签到:", matches2)
matches.extend(matches2)
2024-02-29 06:44:15 +00:00
if matches:
for match in matches:
print(match)
url = "http://k8n.cn/student/punchs/course/" + ClassID + "/" + match
payload = {
2024-02-29 07:26:46 +00:00
'id': match,
2024-02-29 06:44:15 +00:00
'lat': X,
'lng': Y,
'acc': ACC,
'res': '',
'gps_addr': ''
}
response = requests.post(url, headers=headers, data=payload)
if response.status_code == 200:
print("请求成功")
print("响应:", response)
# 解析响应的 HTML 内容
soup_response = BeautifulSoup(response.text, 'html.parser')
h1_tag = soup_response.find('h1')
if h1_tag:
h1_text = h1_tag.text
print(h1_text)
# encoding:utf-8
url = 'http://www.pushplus.plus/send?token=' + token + '&title=' + title + '&content=' + h1_text # 不使用请注释
requests.get(url) # 不使用请注释
continue # 返回到查找进行中的签到循环
else:
2024-02-29 07:28:06 +00:00
print("未找到 <h1> 标签,可能存在错误")
2024-02-29 06:44:15 +00:00
else:
print("请求失败,状态码:", response.status_code)
else:
print("未找到在进行的签到")
# 可以设置一个间隔时间,避免过于频繁地请求
time.sleep(SearchTime) # 暂停10秒后重新尝试