[python]海康威视IVMS 8200平台批量导入卡口
背景
8200平台上需要添加一批卡口,但是批量导入无法使用,海康工程师也无法解决
脚本
import requests import base64 headers={ 'Accept': 'text/html, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Content-Length': '33', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Cookie': '_i18n_locale=zh_CN; home_page=https://xx.xx.xx.xx:443/cas/eportal/home.action; JSESSIONID=64DA1A3AA0054D3FB6C7A3BCBAECE402; alarmDialog_admin=ON; alarmVoice_admin=ON; BMS_LOGIN_COOKIE_ID=7b368d33-b021-44c7-8bad-7cc325d214f6; _i18n_locale=zh_CN; JSESSIONIDNCG=97197FDD347E15CFAC1BAF0C525FE411; /-HIK-CAS=HIK-CAS_TGT-3-QEYQhNmNfsibujynbejZWs4PJlsGFjraFGltHcJfsywdRymVhcF-cas; /-HIK_COOKIE=HIK-SESSION_TGT-3-QEYQ6NmNfsibujynbejZWs4PJlsGFjraFGltHcJfsywdRymVhcF-cas', 'DNT': '1', 'Host': 'xx.xx.xx.xx', 'Origin': 'https://xx.xx.xx.xx', 'Referer': 'https://xx.xx.xx.xx/bms/web/config/index.do?home_page=https://xx.xx.xx.xx:443/cas/eportal/home.action&_random=9120487361250', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' } def get_code():#获取国标编码 data={ 'id':'', 'controlUnitIndexCode': 'xxxxxx' } body=requests.post(url='https://xx.xx.xx.1xx/bms/web/config/crossingInfo/init.do',headers=headers,data=data,verify=False).text code=body.find('xxxx',0) resu=body[code:code+20] print(resu) return(resu) def submit(guobiaocode,channelcode,name,jingdu,weidu,ip,password): data={ 'crossingInfo.indexCode':channelcode, 'crossingInfo.gatCode': guobiaocode, 'crossingInfo.name': name, 'crossingInfo.laneNum': '1', 'crossingInfo.frontType': '3', 'crossingInfo.longitude': jingdu, 'crossingInfo.latitude': weidu, 'crossingInfo.crossingServerId': '122', #卡口接入服务器id 'crossingInfo.crossingMode': '1', 'crossingInfo.intercity': '1', 'crossingInfo.usageType': '80', 'crossingInfo.cloudAnalysis': '0', 'crossingInfo.onePicMultiVehicle': '1', 'crossingInfo.relatedCameraCode': '', 'crossingInfo.internalCode': '', 'crossingInfo.jccrossingIndexCode': '', 'crossingInfo.controlUnitIndexCode': 'xxxxxx',#区域编码 'crossingCameras[0].ip':ip, 'crossingCameras[0].port': '37777', 'crossingCameras[0].username': 'admin', 'crossingCameras[0].password':base64.b64encode(password.encode()).decode(), 'crossingCameras[0].captureDirection': '1', 'crossingCameras[0].chanNum': '-1' } body=requests.post(url='https://xx.xx.xx/bms/web/config/crossingInfo/saveOrUpdate.do',headers=headers,data=data,verify=False).text print('1111',body) kakou="""设备名 设备ip 经度 纬度 密码""" cameras=kakou.split('\n') for i in cameras: camera=i.split('\t') print(camera) code=get_code() submit(code,code,camera[0],camera[2],camera[3],camera[1],camera[4])