hb_modelserach.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import json
  2. import requests
  3. from spiders.hengbang.guishu.hb_config import *
  4. token=''
  5. headerss=''
  6. def check_login():
  7. username = 'SXXN000010'
  8. global token
  9. token = str(redis_conn.hget('hengbang_' + username, 'token'), 'utf8')
  10. if token == '':
  11. token = '用户名、密码错误'
  12. else:
  13. global headerss
  14. headerss = {
  15. "Content-Type": "application/json;charset=UTF-8",
  16. 'Authorization': token,
  17. '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'
  18. }
  19. params = {
  20. 'proposalno': '',
  21. 'licenseno': '',
  22. 'carowner': '',
  23. 'insuredcname': '',
  24. 'insrntcname': '',
  25. 'apptime': '',
  26. 'creator': username,
  27. 'pageNo': '0',
  28. 'pageSize': '8',
  29. }
  30. response = requests.get('https://car.hbins.com.cn/new-insure/api/carInsureMain/list', params=params,
  31. headers=headerss)
  32. if '登录失效' in response.text:
  33. get_userinfo(username)
  34. check_login()
  35. def get_carinfo(x):
  36. model =x
  37. url = "https://car.hbins.com.cn/backstage/api/car-model/vague"
  38. params = {
  39. "modelCName": model,
  40. "licenseNo": "",
  41. "vinCode": "",
  42. "cimodelCode": "",
  43. "modelCodes": "",
  44. "pageNo": "0",
  45. "pageSize": "50",
  46. }
  47. response = requests.get(url, headers=headerss, params=params)
  48. if response.json().get('content'):
  49. content=[]
  50. for i in response.json().get('content'):
  51. if i.get('exhaustScale'):
  52. displacement=str(int(i.get('exhaustScale'))/1000)
  53. else:
  54. displacement=''
  55. content.append(
  56. {
  57. "modelCode": i.get('modelCode'),
  58. "modelName": i.get('modelCName'),
  59. "brandCN": i.get('carBrand'),
  60. "series": i.get('familyName'),
  61. "importFlag": i.get('vehicleClass'),
  62. "ratedPassengerCapacity": i.get('seatCount'),
  63. "displacement": displacement,
  64. "marketYear": i.get('carYear'),
  65. "replacementValue": i.get('purchasePriceNotTax'),
  66. "vehicleDescription": i.get('remark'),
  67. "refCode1": '',
  68. "refCode2": '',
  69. "gearboxType": i.get('transmissiontType'),
  70. "remark": i.get('remark'),
  71. "fuelType": "",
  72. "fuelTypeCode": i.get('energyType') if i.get('energyType') else '0',
  73. "energyTypes": i.get('energyType') if i.get('energyType') else '0',
  74. "wholeWeight": '',
  75. "powerScale": i.get('power'),
  76. "vehicleJingyo": '',
  77. "vehicleSeatMax": "0",
  78. "vehicleSeatMin": "0"
  79. }
  80. )
  81. return {
  82. 'code':200,
  83. 'content':content
  84. }
  85. else:
  86. return {
  87. 'code': 400,
  88. 'content': []
  89. }
  90. def main(x):
  91. check_login()
  92. if token!='用户名、密码错误':
  93. return get_carinfo(x)
  94. else:
  95. return {
  96. 'code': 400,
  97. 'message':'用户名、密码错误'
  98. }
  99. if __name__ == '__main__':
  100. aa=main('东南DN7156M4轿车')
  101. print(aa.get('content'))