first commit

This commit is contained in:
2025-10-20 12:32:18 +08:00
commit 2cfd7c5a08
121 changed files with 254585 additions and 0 deletions
@@ -0,0 +1,360 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "eb6a8154",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"df = pd.read_excel('./学生信息_最新.xlsx',dtype='str')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "78f0cdaa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'<html>\\r\\n<head><title>404 Not Found</title></head>\\r\\n<body bgcolor=\"white\">\\r\\n<center><h1>404 Not Found</h1></center>\\r\\n<hr><center>nginx/1.4.0</center>\\r\\n</body>\\r\\n</html>\\r\\n'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get(url=f\"http://band.hxzhxy.cn/oauth/token?username=zhongwei&password=123456a&client_id=client&grant_type=password&client_secret=123456\").text"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "d34b4562",
"metadata": {},
"outputs": [],
"source": [
"from requests import get,post\n",
"import time\n",
"ip = \"http://band.hxzhxy.cn\"\n",
"param = {\n",
" \"username\": \"tangchao\",\n",
" \"password\": \"123456a\",\n",
" \"client_id\": \"client\",\n",
" \"grant_type\": \"password\",\n",
" \"client_secret\": \"123456\",\n",
"}\n",
"data = get(url=f\"http://band.hxzhxy.cn/oauth/token?username=zhongwei&password=123456a&client_id=client&grant_type=password&client_secret=123456\").json()\n",
"token = data[\"access_token\"]\n",
"header = {\n",
" \"content-type\": \"application/json\",\n",
" \"authorization\": f\"Bearer {token}\",\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "80c5ff5c",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Administrator\\AppData\\Local\\Temp\\ipykernel_11244\\3332289157.py:1: DeprecationWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.\n",
" a = df.groupby(\"教室\").apply(lambda x:x[\"手环号\"].tolist())\n"
]
}
],
"source": [
"a = df.groupby(\"教室\").apply(lambda x:x[\"手环号\"].tolist())"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bd8942ac",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6756c409",
"metadata": {},
"outputs": [],
"source": [
"doors = get(f\"https://band.hxzhxy.cn/door/lock/listLockPage?teamId=119&pageSize=60&pageNumber=0&value=&areaId=&tierId=&regionId=&bindType=&lockName=&type=2&mainTypeId=&sizeType=&lockType=&access_token={token}\").json()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "11c5f395",
"metadata": {},
"outputs": [],
"source": [
"doors_map ={}\n",
"for item in doors[\"data\"][\"content\"]:\n",
" doors_map[item[\"lockName\"]] = item[\"lockNo\"]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "ac4e8886",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"教室\n",
"2210 [0022796140, 0022753212, 0022796172, 310863721...\n",
"2211 [3108594513, 3108622273, 3108583137, 002303998...\n",
"2212 [3108445809, 3108464161, 3108415601, 310846636...\n",
"2213 [0022820892, 3108624769, 3108605505, 310846235...\n",
"2214 [3108599409, 3107632929, 3108571601, 002272249...\n",
"2311 [3108598753, 3108438913, 3108358785, 310839236...\n",
"2312 [3108631313, 0022702140, 3108584241, 002283212...\n",
"2313 [3108562849, 0022679980, 3108437249, 310843908...\n",
"2314 [3108415473, 3108462385, 0022752972, 310862931...\n",
"2510 [0022822732, 3108606273, 3108390481, 002279577...\n",
"2511 [3108388321, 0022704076, 3108582545, 002270244...\n",
"2512 [3108606081, 3108614401, 3108600385, 310844576...\n",
"2513 [3108440913, 3108683713, 3108588817, 310868209...\n",
"2514 [3108361393, 3108600401, 3108597553, 310860504...\n",
"dtype: object"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9c65d092",
"metadata": {},
"outputs": [],
"source": [
"for key,value in a.items():\n",
" lockNo = doors_map.get(f'{key}前门',None)\n",
" addUserBand = \",\".join(value)\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4cae8da6",
"metadata": {},
"outputs": [],
"source": [
"result =post(\"https://band.hxzhxy.cn/door/accredit/sendNews\",json={\"startTime\":\"25083115\",\"endTime\":\"28052815\",\"adminType\":\"55\",\"type\":\"01\",\"time\":[1756625633772,1843112033772],\"accountIp\":\"183.220.92.52\",\"accountName\":\"183.220.92.52\",\"lockNo\":\"181681774702\",\"serialNo\":\"868002345684294\",\"addAdminBand\":\"\",\"addUserBand\":\"3108624305\",\"removeBand\":\"\",\"doorAccreditIds\":\"\"},headers=header).text"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "aef76278",
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime,timedelta\n",
"start = datetime.now().strftime(\"%y%m%d%H\")\n",
"end = (datetime.now()+ timedelta(days=365)).strftime(\"%y%m%d%H\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ed36257e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('25091916', '26091916')"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"ename": "",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。\n",
"\u001b[1;31m请查看单元格中的代码,以确定故障的可能原因。\n",
"\u001b[1;31m单击<a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>了解详细信息。\n",
"\u001b[1;31m有关更多详细信息,请查看 Jupyter <a href='command:jupyter.viewOutput'>log</a>。"
]
}
],
"source": [
"start,end"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "673efe31",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"下发2512前门\n",
"参数lockNo181681774855serialNo868002345684074addUserBand3108606081,3108614401,3108600385,3108445761,0022754844,3108629505,3108601713,3108590993,0022722508,3108586817,3108354753,3108586769,3108386177,3108359649,3108584129,3108356609,0022830300,3108637281,3108637185,3108605073,3108605345,3108632769,0022796108,3108595409,3108562881,3108614321,3108388129,3108603841,0022821084,3108359713,3108358529,3108460625,0023038412,3108466545,3108681873,3108396257,3108652497\n",
"{\"success\":true,\"msg\":\"操作成功\",\"code\":0,\"data\":null}\n"
]
},
{
"ename": "",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。\n",
"\u001b[1;31m请查看单元格中的代码,以确定故障的可能原因。\n",
"\u001b[1;31m单击<a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>了解详细信息。\n",
"\u001b[1;31m有关更多详细信息,请查看 Jupyter <a href='command:jupyter.viewOutput'>log</a>。"
]
}
],
"source": [
"# for key,value in a.items():\n",
"# lockNo = doors_map.get(f'{key}前门',None)\n",
"# addUserBand = \",\".join(value)\n",
"for key,value in a.items():\n",
" lockNo = doors_map.get(f'{key}前门',None)\n",
" addUserBand = \",\".join(value)\n",
" if key!='2512':continue\n",
" for item in doors[\"data\"][\"content\"]:\n",
" if item[\"lockName\"] == f'{key}前门':\n",
" print( f'下发{key}前门')\n",
" print(f\"参数lockNo{lockNo}serialNo{item['serialNo']}addUserBand{addUserBand}\")\n",
" result =post(\"https://band.hxzhxy.cn/door/accredit/sendNews\",json={\"startTime\":\"25083115\",\"endTime\":\"28052815\",\"adminType\":\"55\",\"type\":\"01\",\"time\":[1756625633772,1843112033772],\"accountIp\":\"183.220.92.52\",\"accountName\":\"183.220.92.52\",\"lockNo\":lockNo,\"serialNo\":item[\"serialNo\"],\"addAdminBand\":\"\",\"addUserBand\":addUserBand,\"removeBand\":\"\",\"doorAccreditIds\":\"\"},headers=header).text\n",
" print(result)\n",
" # print(a)\n",
" time.sleep(10)\n",
" break\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c4e96b85",
"metadata": {},
"outputs": [],
"source": [
"import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "96da8a5d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 52/52 [00:07<00:00, 7.22it/s]\n"
]
}
],
"source": [
"data = get(f\"https://band.hxzhxy.cn/door/lock/listLockPage?teamId=119&pageSize=60&pageNumber=0&value=&areaId=&tierId=&regionId=&bindType=&lockName=&type=2&mainTypeId=&sizeType=&lockType=&access_token={token}\").json()\n",
"with tqdm.tqdm(total=len(data[\"data\"][\"content\"])) as pbar:\n",
" for item in data[\"data\"][\"content\"]:\n",
" if item[\"password\"] == \"12345687\" or item[\"password\"]==None: \n",
" pbar.update(1)\n",
" continue\n",
" post(\"https://band.hxzhxy.cn/door/password/send\",json={\"lockNos\":item[\"lockNo\"],\"serialNos\":item[\"serialNo\"],\"password\":\"12345687\",\"type\":\"04\",\"typeSend\":\"0\",\"accountIp\":\"183.220.91.181\",\"accountName\":\"183.220.91.181\",\"account\":\"5789\"},headers=header)\n",
" time.sleep(7)\n",
" pbar.update(1)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "ee45017c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'bandUserCount': 0, 'lockNo': '181681774855', 'teamId': 119, 'electric': 100, 'tierName': '5', 'doorName': '2512前门', 'ID': 723, 'lockType': 2, 'remark': None, 'mainType': '教室', 'type': '', 'password': '88888888', 'bandAdminCount': 4, 'remask': None, 'alias': '教学楼3-2门锁网关', 'createTime': 1755314698000, 'dongId': 28, 'genre': None, 'gateType': 1, 'dongName': '1栋', 'lockName': '2512前门', 'roomName': '2512', 'image': None, 'sizeType': 1, 'isPassword': 1, 'regionName': '无', 'areaId': 20, 'updateTime': None, 'version': None, 'serialNo': '868002345684074', 'opsTime': None, 'teamName': '2512', 'tierId': 64, 'doorId': 747, 'areaName': '教学楼', 'batteryType': None}\n",
"88888888\n"
]
}
],
"source": [
"data = get(f\"https://band.hxzhxy.cn/door/lock/listLockPage?teamId=119&pageSize=60&pageNumber=0&value=&areaId=&tierId=&regionId=&bindType=&lockName=&type=2&mainTypeId=&sizeType=&lockType=&access_token={token}\").json()\n",
"for item in data[\"data\"][\"content\"]:\n",
" if item[\"password\"] != \"12345687\" and item[\"password\"]!=None:\n",
" print(item)\n",
" print(item['password'])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "cc3c500c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(\"Xpaotongshutongwenzhongxue971001\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}