hb_phoupload.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. import json
  2. import re
  3. import redis
  4. import requests
  5. import base64
  6. from spiders.hengbang.guishu.hb_config import *
  7. class photo_up(object):
  8. def __init__(self,plyappno,b64pho_list):
  9. self.busiNo=plyappno
  10. self.username = str(redis_conn.hget('hengbang_' + self.busiNo, 'username'), 'utf8')
  11. self.token=str(redis_conn.hget('hengbang_'+self.busiNo,'token'),'utf8')
  12. self.b64pho_list=b64pho_list
  13. self.headers = {
  14. 'Authorization':self.token,
  15. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
  16. "Accept": "application/json, text/plain, */*",
  17. }
  18. def upload(self):
  19. extArr_list = []
  20. file_buff_list=[]
  21. file_type_list=[]
  22. mark3_list=[]
  23. for i in self.b64pho_list:
  24. #车主影像
  25. if i.get('imgtype') == 'C02':
  26. url='https://car.hbins.com.cn/interflow/api/ocr/2'
  27. headers = {
  28. "Authorization": self.token,
  29. "Content-Type": "application/json;charset=UTF-8",
  30. "Origin": "https://car.hbins.com.cn",
  31. "Referer": "https://car.hbins.com.cn/",
  32. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  33. }
  34. data={
  35. 'jobNo':self.username,
  36. "image_data":'data:image/jpeg;base64,'+i.get('image')
  37. }
  38. data = json.dumps(data)
  39. response = requests.post(url, headers=headers, data=data)
  40. name=''.join(re.findall(r'"name" : "(.*?)"',response.text,re.S)).replace('姓名','')
  41. id_number=''.join(re.findall(r'"id_number" : "(.*?)"',response.text,re.S)).replace('身份证号','')
  42. extArr_list.append({
  43. "ocrFlag": "1",
  44. "name": name,
  45. "id_number": id_number
  46. })
  47. file_type_list.append('01,06,03,投保业务-旧车-证件')
  48. file_buff_list.append('data:image/jpeg;base64,'+i.get('image'))
  49. mark3_list.append('6')
  50. elif i.get('imgtype') == 'C01':
  51. url = 'https://car.hbins.com.cn/interflow/api/ocr/1'
  52. headers = {
  53. "Authorization": self.token,
  54. "Content-Type": "application/json;charset=UTF-8",
  55. "Origin": "https://car.hbins.com.cn",
  56. "Referer": "https://car.hbins.com.cn/",
  57. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  58. }
  59. data = {
  60. 'jobNo': self.username,
  61. "image_data": 'data:image/jpeg;base64,' + i.get('image')
  62. }
  63. data = json.dumps(data)
  64. response = requests.post(url, headers=headers, data=data)
  65. plate_no = ''.join(re.findall(r'"plate_no" : "(.*?)"', response.text, re.S)).replace('号牌号码', '')
  66. vin_code = ''.join(re.findall(r'"vin" : "(.*?)"', response.text, re.S)).replace('车辆识别代码', '')
  67. engine_no = ''.join(re.findall(r'"engine_no" : "(.*?)"', response.text, re.S)).replace('发动机号码', '')
  68. register_date = ''.join(re.findall(r'"register_date" : "(.*?)"', response.text, re.S)).replace('注册日期', '')
  69. issue_date = ''.join(re.findall(r'"issue_date" : "(.*?)"', response.text, re.S)).replace('发证日期', '')
  70. owner = ''.join(re.findall(r'"owner" : "(.*?)"', response.text, re.S)).replace('所有人', '')
  71. extArr_list.append({
  72. "ocrFlag": "1",
  73. "plate_no": plate_no,
  74. "vin_code": vin_code,
  75. "engine_no": engine_no,
  76. "register_date": register_date,
  77. "issue_date": issue_date,
  78. "owner": owner
  79. })
  80. file_type_list.append('01,06,02,投保业务-旧车-行驶证')
  81. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  82. mark3_list.append('8')
  83. elif i.get('imgtype') == 'D02':
  84. extArr_list.append({})
  85. file_type_list.append('01,06,03,投保业务-旧车-证件')
  86. file_buff_list.append('data:image/jpeg;base64,'+i.get('image'))
  87. mark3_list.append('7')
  88. elif i.get('imgtype') == 'D01':
  89. extArr_list.append({})
  90. file_type_list.append('01,06,02,投保业务-旧车-行驶证')
  91. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  92. mark3_list.append('9')
  93. elif i.get('imgtype') == 'C03':
  94. url = 'https://car.hbins.com.cn/interflow/api/ocr/2'
  95. headers = {
  96. "Authorization": self.token,
  97. "Content-Type": "application/json;charset=UTF-8",
  98. "Origin": "https://car.hbins.com.cn",
  99. "Referer": "https://car.hbins.com.cn/",
  100. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  101. }
  102. data = {
  103. 'jobNo': self.username,
  104. "image_data": 'data:image/jpeg;base64,' + i.get('image')
  105. }
  106. data = json.dumps(data)
  107. response = requests.post(url, headers=headers, data=data)
  108. name = ''.join(re.findall(r'"name" : "(.*?)"', response.text, re.S)).replace('姓名', '')
  109. id_number = ''.join(re.findall(r'"id_number" : "(.*?)"', response.text, re.S)).replace('身份证号', '')
  110. extArr_list.append({
  111. "ocrFlag": "1",
  112. "name": name,
  113. "id_number": id_number
  114. })
  115. file_type_list.append('01,06,03,投保业务-旧车-证件')
  116. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  117. mark3_list.append('11')
  118. elif i.get('imgtype') == 'D03':
  119. url = 'https://car.hbins.com.cn/interflow/api/ocr/2'
  120. headers = {
  121. "Authorization": self.token,
  122. "Content-Type": "application/json;charset=UTF-8",
  123. "Origin": "https://car.hbins.com.cn",
  124. "Referer": "https://car.hbins.com.cn/",
  125. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  126. }
  127. data = {
  128. 'jobNo': self.username,
  129. "image_data": 'data:image/jpeg;base64,' + i.get('image')
  130. }
  131. data = json.dumps(data)
  132. response = requests.post(url, headers=headers, data=data)
  133. name = ''.join(re.findall(r'"name" : "(.*?)"', response.text, re.S)).replace('姓名', '')
  134. id_number = ''.join(re.findall(r'"id_number" : "(.*?)"', response.text, re.S)).replace('身份证号', '')
  135. extArr_list.append({
  136. "ocrFlag": "1",
  137. "name": name,
  138. "id_number": id_number
  139. })
  140. file_type_list.append('01,06,03,投保业务-旧车-证件')
  141. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  142. mark3_list.append('12')
  143. elif i.get('imgtype') == 'C04':
  144. url = 'https://car.hbins.com.cn/interflow/api/ocr/2'
  145. headers = {
  146. "Authorization": self.token,
  147. "Content-Type": "application/json;charset=UTF-8",
  148. "Origin": "https://car.hbins.com.cn",
  149. "Referer": "https://car.hbins.com.cn/",
  150. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  151. }
  152. data = {
  153. 'jobNo': self.username,
  154. "image_data": 'data:image/jpeg;base64,' + i.get('image')
  155. }
  156. data = json.dumps(data)
  157. response = requests.post(url, headers=headers, data=data)
  158. name = ''.join(re.findall(r'"name" : "(.*?)"', response.text, re.S)).replace('姓名', '')
  159. id_number = ''.join(re.findall(r'"id_number" : "(.*?)"', response.text, re.S)).replace('身份证号', '')
  160. extArr_list.append({
  161. "ocrFlag": "1",
  162. "name": name,
  163. "id_number": id_number
  164. })
  165. file_type_list.append('01,06,03,投保业务-旧车-证件')
  166. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  167. mark3_list.append('13')
  168. elif i.get('imgtype') == 'D04':
  169. url = 'https://car.hbins.com.cn/interflow/api/ocr/2'
  170. headers = {
  171. "Authorization": self.token,
  172. "Content-Type": "application/json;charset=UTF-8",
  173. "Origin": "https://car.hbins.com.cn",
  174. "Referer": "https://car.hbins.com.cn/",
  175. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  176. }
  177. data = {
  178. 'jobNo': self.username,
  179. "image_data": 'data:image/jpeg;base64,' + i.get('image')
  180. }
  181. data = json.dumps(data)
  182. response = requests.post(url, headers=headers, data=data)
  183. name = ''.join(re.findall(r'"name" : "(.*?)"', response.text, re.S)).replace('姓名', '')
  184. id_number = ''.join(re.findall(r'"id_number" : "(.*?)"', response.text, re.S)).replace('身份证号', '')
  185. extArr_list.append({
  186. "ocrFlag": "1",
  187. "name": name,
  188. "id_number": id_number
  189. })
  190. file_type_list.append('01,06,03,投保业务-旧车-证件')
  191. file_buff_list.append('data:image/jpeg;base64,' + i.get('image'))
  192. mark3_list.append('14')
  193. headers = {
  194. "Accept": "application/json, text/plain, */*",
  195. "Authorization":self.token,
  196. "Content-Type": "application/json;charset=UTF-8",
  197. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  198. }
  199. url = "https://car.hbins.com.cn/interflow/api/filebuff-upload/batch-folder"
  200. params = {
  201. "imgType": "tihe",
  202. "plyappno": self.busiNo
  203. }
  204. data = {
  205. "file_buff": "||".join(file_buff_list),
  206. "file_ext_name": "jpg",
  207. "file_type": "||".join(file_type_list),
  208. "ext_json": {
  209. "mark3": ",".join(mark3_list),
  210. "extArr": extArr_list
  211. }
  212. }
  213. data = json.dumps(data)
  214. response = requests.post(url, headers=headers, params=params, data=data)
  215. message = response.json().get('status')
  216. if message == '1':
  217. return {'message': '上传成功', 'code': 200}
  218. else:
  219. return {'message': '上传失败', 'code': 400}
  220. def main(self):
  221. return self.upload()
  222. if __name__ == '__main__':
  223. aa = open('3.jpg', 'rb').read()
  224. bb = open('4.jpg', 'rb').read()
  225. cc = open('1.jpg', 'rb').read()
  226. dd = open('2.jpg', 'rb').read()
  227. # cc = open('3333.jpg', 'rb').read()
  228. # print(str(base64.b64encode(cc)).replace("b'","").replace("'",""))
  229. ee = photo_up("T9704020801202465504462",
  230. [{
  231. 'image': str(base64.b64encode(aa)).replace("b'", "").replace("'", ""),
  232. 'imgtype': 'C01'
  233. },
  234. {
  235. 'image': str(base64.b64encode(bb)).replace("b'", "").replace("'", ""),
  236. 'imgtype': 'D01'
  237. },
  238. {
  239. 'image': str(base64.b64encode(cc)).replace("b'", "").replace("'", ""),
  240. 'imgtype': 'C03'
  241. },
  242. {
  243. 'image': str(base64.b64encode(dd)).replace("b'", "").replace("'", ""),
  244. 'imgtype': 'D03'
  245. },
  246. ]
  247. ).main()
  248. print(ee)