yc_newzjprice.py 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. # *_* coding:utf-8 *_*
  2. import json
  3. import requests
  4. import re
  5. import ddddocr
  6. import base64
  7. import random
  8. import hashlib
  9. from config import *
  10. class zm_login(object):
  11. def __init__(self,uname,pwd,):
  12. self.captchaKey=None
  13. self.uname=uname
  14. self.pwd=pwd
  15. self.verificationCode=None
  16. self.token=None
  17. self.session=requests.session()
  18. def get_md5(self,s):
  19. md = hashlib.md5()
  20. md.update(s.encode('utf-8'))
  21. return md.hexdigest()
  22. def get_captchaKey(self):
  23. headers = {
  24. 'Connection': 'keep-alive',
  25. 'Pragma': 'no-cache',
  26. 'Cache-Control': 'no-cache',
  27. 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
  28. 'Accept': 'application/json, text/plain, */*',
  29. 'Content-Type': 'application/json;charset=UTF-8',
  30. 'sec-ch-ua-mobile': '?0',
  31. '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',
  32. 'sec-ch-ua-platform': '"Windows"',
  33. 'Origin': 'https://kscd.echinacoal.com',
  34. 'Sec-Fetch-Site': 'cross-site',
  35. 'Sec-Fetch-Mode': 'cors',
  36. 'Sec-Fetch-Dest': 'empty',
  37. 'Referer': 'https://kscd.echinacoal.com/',
  38. 'Accept-Language': 'zh-CN,zh;q=0.9',
  39. }
  40. n='{"head":{"transCode":"VerifyCode","transType":"Req","token":"","source":"2"},"userCode":"'+str(self.uname)+'"}'
  41. t=base64.b64encode(n.encode()).decode()
  42. c = [2, 5, 8, 10, 15]
  43. r = random.randint(1,10)
  44. i = "jsfklashfkbklfdhslkfhlksfd"[r]
  45. 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]:]
  46. data = e
  47. response = self.session.post('https://hxkscd.chinacoal-ins.com/singlePlatform/common/VerifyCode.do',
  48. headers=headers, data=data)
  49. captchaKey=response.json().get('vckeyID')
  50. imageStream=response.json().get('verifyCode')
  51. imageStream=imageStream.replace('data:image/png;base64,','')
  52. imagedata=base64.b64decode(imageStream)
  53. self.captchaKey=captchaKey
  54. with open(images_path+'yongcheng/zm.jpg', 'wb') as f:
  55. f.write(imagedata)
  56. ocr = ddddocr.DdddOcr(old=True)
  57. with open(images_path+"yongcheng/zm.jpg", 'rb') as f:
  58. image = f.read()
  59. res = ocr.classification(image)
  60. if len(res)!=4:
  61. self.get_captchaKey()
  62. 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=="}'
  63. t = base64.b64encode(n.encode()).decode()
  64. c = [2, 5, 8, 10, 15]
  65. r = random.randint(1, 10)
  66. i = "jsfklashfkbklfdhslkfhlksfd"[r]
  67. 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]:]
  68. dataa = e
  69. headerss = {
  70. 'Connection': 'keep-alive',
  71. 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
  72. 'Content-Type': 'application/json;charset=UTF-8',
  73. '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',
  74. 'Origin': 'https://kscd.echinacoal.com',
  75. 'Referer': 'https://kscd.echinacoal.com/',
  76. }
  77. ress = self.session.post('https://hxkscd.chinacoal-ins.com/singlePlatform/common/Login.do', headers=headerss,
  78. data=dataa)
  79. if ress.json().get('head').get('token')=='':
  80. self.get_captchaKey()
  81. else:
  82. self.token=re.findall(r'"token":"(.*?)",',ress.text)
  83. return "".join(self.token)
  84. def get_price(purchasePrice,validDate,registerDate):
  85. ll = zm_login('14003058', 'Priv!07131000d30')
  86. token = ll.get_captchaKey()
  87. data={
  88. "head": {
  89. "TransCode": "ActualValue",
  90. "TransType": "Req",
  91. "token": token,
  92. "source": "2"
  93. },
  94. "approvedPassengersCapacity": 5,
  95. "validDate": validDate+" 00:00:00",
  96. "purchasePrice": purchasePrice,
  97. "motorUsageTypeCode": "02",
  98. "motorTypeCode": "11",
  99. "registerDate": registerDate+" 00:00:00",
  100. "carUseType": "01",
  101. "riskCode": "0361",
  102. "motorMainType": "100",
  103. "motorSubType": "101",
  104. # "planCode": "1379",
  105. "energyTypeCode": "0"
  106. }
  107. t = base64.b64encode(str(json.dumps(data)).encode()).decode()
  108. c = [2, 5, 8, 10, 15]
  109. r = random.randint(1, 10)
  110. i = "jsfklashfkbklfdhslkfhlksfd"[r]
  111. 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]:]
  112. dataa = e
  113. headerss = {
  114. 'Connection': 'keep-alive',
  115. 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
  116. 'Content-Type': 'application/json;charset=UTF-8',
  117. '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',
  118. 'Origin': 'https://kscd.echinacoal.com',
  119. 'Referer': 'https://kscd.echinacoal.com/',
  120. }
  121. url='https://hxkscd.chinacoal-ins.com/singlePlatform/common/ActualValue.do'
  122. res=requests.post(url=url,data=dataa,headers=headerss)
  123. s=res.json().get('actualValue')
  124. return int(round(s,0))
  125. if __name__ == '__main__':
  126. print(get_price(62900,'2023-01-19','2013-01-08'))