# *_* coding:utf-8 *_* import json import requests import re import ddddocr import base64 import random import hashlib from config import * class zm_login(object): def __init__(self,uname,pwd,): self.captchaKey=None self.uname=uname self.pwd=pwd self.verificationCode=None self.token=None self.session=requests.session() def get_md5(self,s): md = hashlib.md5() md.update(s.encode('utf-8')) return md.hexdigest() def get_captchaKey(self): headers = { 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"', 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json;charset=UTF-8', 'sec-ch-ua-mobile': '?0', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', 'sec-ch-ua-platform': '"Windows"', 'Origin': 'https://kscd.echinacoal.com', 'Sec-Fetch-Site': 'cross-site', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty', 'Referer': 'https://kscd.echinacoal.com/', 'Accept-Language': 'zh-CN,zh;q=0.9', } n='{"head":{"transCode":"VerifyCode","transType":"Req","token":"","source":"2"},"userCode":"'+str(self.uname)+'"}' t=base64.b64encode(n.encode()).decode() c = [2, 5, 8, 10, 15] r = random.randint(1,10) i = "jsfklashfkbklfdhslkfhlksfd"[r] e = t[0:c[0]] + i + t[c[0]:c[1]] + i + t[c[1]: c[2]] + i + t[c[2]:c[3]] + i + t[c[3]:c[4]] + i + t[c[4]:] data = e response = self.session.post('https://hxkscd.chinacoal-ins.com/singlePlatform/common/VerifyCode.do', headers=headers, data=data) captchaKey=response.json().get('vckeyID') imageStream=response.json().get('verifyCode') imageStream=imageStream.replace('data:image/png;base64,','') imagedata=base64.b64decode(imageStream) self.captchaKey=captchaKey with open(images_path+'yongcheng/zm.jpg', 'wb') as f: f.write(imagedata) ocr = ddddocr.DdddOcr(old=True) with open(images_path+"yongcheng/zm.jpg", 'rb') as f: image = f.read() res = ocr.classification(image) if len(res)!=4: self.get_captchaKey() n='{"head":{"transCode":"Login","transType":"Req","token":"","source":"2"},"userCode":"'+str(self.uname)+'","pwd":"'+self.get_md5(self.pwd)+'","vckeyID":"'+self.captchaKey+'","verifyCode":"'+res+'","sign":"/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\\nHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAEYDASIA\\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+is3\\nW73U7GzSXStJ/tOcyBWh+0rDtXB+bc3B5AGPf2rlbzxt4msLm0trjwVtnvJPLgiXVY3ZyBknAUnA\\nHJY8DuRUymo7lKLex3lFU9V1S00XSrnUr6VY7a3Qu7MwGfQDJAyTgAZ5JArza6+NUVpLIG0J7iKC\\nSNbiWyuxOkYYZzvVdhO0MQN3JUjjBx1UMJXrv91Fv8vv2MpTjHc9VorkbS88Y+IdNhuIY9J0KG4g\\ndll83+0JcnGxl27IwMZYHc4OV461uaLpt1plmyXuq3Op3UrCSWecKo3bFUhEUAIvy5288kkkk5oq\\nUPZJ80lzLotfxWn4lJ3NKis3xDdTWPhrVbu2fZPBZzSxvgHayoSDg8HkV59pl941u/A48Vp4nik8\\nuOS4axmsIwrrG7BlLrzyFPQDrjI61zkynZ2sep0VieEdck8R+FrHVpoUhlnVg6ISV3KxUkZ7HbnH\\nbOMnrRQUndXRZ13XbDw5pUuo6jLshThVHLSN2VR3J/xJwATXAz6VqK+KoPE/irxXpnh6aRHhtbOM\\nQs6Q4ztEswI3gudxVT1IBAYAW9Ui8UXXjH+0rjwgmoWmnsy6Yn2+GNVOeZmzkljtUgHAXHQnmuk0\\nu/1rV5Z7PXPCqWNk8LBmkvY7hZM4BQoB0IJ68cY71eHxChP3o3Xpf801/XcuUdNH+JnHwDotjbte\\nz6dceJdTjhMSPq1z9oeQFtwX94digE9QoIGepJzieJtTnvbyxh8WaZd6ZpKSo5SALOsrncPmlUja\\nAP4VBYjd7Yua/wCCDp97b3/hGymsZHmV7xNMvPspkCLiMbGzCVBySChz+LVhXuk/EvVdPt4dZsbH\\nUreylWZoPNS3nvCWwRuUlAFUkfw8H+Iiu+a+stP2132lp92ril816duSd9kv8jmvij4TufCesw63\\np0nk6RLKq2yROV+wy8vtUZ+VS29xtwASRgcE9Z441v8A4TDSfCmi6fJsfXJI55xby+aYEGAQyjG4\\nKxYknABhPpxoeLvE+j654Z1PQNViv9EvblZUtotSiECzSRYcbZuYipYAZ38546gnmvhd4b1qz8X2\\ncmt2UjWtppbvpt2jK8WHkyB5kZKsSJJTgknBz6VGKw9WpH2k42lbXtJbXT2b766778zE4+81HZnq\\nPiaGK38D6xDDGkUUemzIiIoVVURkAADoAK8s0y28ZXnwvsoLCG3m0Zmk82KzkKXkkQdy6ksCuCQR\\nhQScgYIJB9c8Q2s194a1W0tk3zz2c0UaZA3MyEAZPA5NcP4ck8b+HPC0Gjw+D0mlgWQJO+oxBdzM\\nzAlAeg3dN3OOorzy6ivLrt0Ov8JXui33hu0fQFSOwRdiwgYaJhyVYf3ucknOc5yc5JVPwH4Xk8J+\\nGxYXEqSXMkzzTGNiU3HAG3IBxtVevfNFM1hflVzp6KKKCgooooAjngiuYJIJ4klhlUpJHIoZXUjB\\nBB4II7Vnad4a0bR7+W80zTobKWWIRSLbAxxuoJIJjXClhk/NjOCRnFFFXGpOMXGLaT3FZGrRRRUD\\nCiiigD//2Q=="}' t = base64.b64encode(n.encode()).decode() c = [2, 5, 8, 10, 15] r = random.randint(1, 10) i = "jsfklashfkbklfdhslkfhlksfd"[r] e = t[0:c[0]] + i + t[c[0]:c[1]] + i + t[c[1]: c[2]] + i + t[c[2]:c[3]] + i + t[c[3]:c[4]] + i + t[c[4]:] dataa = e headerss = { 'Connection': 'keep-alive', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', 'Origin': 'https://kscd.echinacoal.com', 'Referer': 'https://kscd.echinacoal.com/', } ress = self.session.post('https://hxkscd.chinacoal-ins.com/singlePlatform/common/Login.do', headers=headerss, data=dataa) if ress.json().get('head').get('token')=='': self.get_captchaKey() else: self.token=re.findall(r'"token":"(.*?)",',ress.text) return "".join(self.token) def get_price(purchasePrice,validDate,registerDate): ll = zm_login('14003058', 'Priv!07131000d30') token = ll.get_captchaKey() data={ "head": { "TransCode": "ActualValue", "TransType": "Req", "token": token, "source": "2" }, "approvedPassengersCapacity": 5, "validDate": validDate+" 00:00:00", "purchasePrice": purchasePrice, "motorUsageTypeCode": "02", "motorTypeCode": "11", "registerDate": registerDate+" 00:00:00", "carUseType": "01", "riskCode": "0361", "motorMainType": "100", "motorSubType": "101", # "planCode": "1379", "energyTypeCode": "0" } t = base64.b64encode(str(json.dumps(data)).encode()).decode() c = [2, 5, 8, 10, 15] r = random.randint(1, 10) i = "jsfklashfkbklfdhslkfhlksfd"[r] e = t[0:c[0]] + i + t[c[0]:c[1]] + i + t[c[1]: c[2]] + i + t[c[2]:c[3]] + i + t[c[3]:c[4]] + i + t[c[4]:] dataa = e headerss = { 'Connection': 'keep-alive', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', 'Origin': 'https://kscd.echinacoal.com', 'Referer': 'https://kscd.echinacoal.com/', } url='https://hxkscd.chinacoal-ins.com/singlePlatform/common/ActualValue.do' res=requests.post(url=url,data=dataa,headers=headerss) s=res.json().get('actualValue') return int(round(s,0)) if __name__ == '__main__': print(get_price(62900,'2023-01-19','2013-01-08'))