123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import json
- import requests
- from spiders.hengbang.guishu.hb_config import *
- token=''
- headerss=''
- def check_login():
- username = 'SXXN000010'
- global token
- token = str(redis_conn.hget('hengbang_' + username, 'token'), 'utf8')
- if token == '':
- token = '用户名、密码错误'
- else:
- global headerss
- headerss = {
- "Content-Type": "application/json;charset=UTF-8",
- 'Authorization': token,
- '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'
- }
- params = {
- 'proposalno': '',
- 'licenseno': '',
- 'carowner': '',
- 'insuredcname': '',
- 'insrntcname': '',
- 'apptime': '',
- 'creator': username,
- 'pageNo': '0',
- 'pageSize': '8',
- }
- response = requests.get('https://car.hbins.com.cn/new-insure/api/carInsureMain/list', params=params,
- headers=headerss)
- if '登录失效' in response.text:
- get_userinfo(username)
- check_login()
- def get_carinfo(x):
- vin =x
- url = "https://car.hbins.com.cn/new-insure/api/carinsurenew/renewinsurance"
- params = {
- "licenseNo": "",
- "frameno": vin,
- "companyCode": "0107050301"
- }
- response = requests.get(url, headers=headerss, params=params)
- if response.json().get('carMappings'):
- carMappings = response.json().get('carMappings').get('cbitData')
- url = "https://car.hbins.com.cn/backstage/api/car-model/queryByCarMapping"
- data = {
- "cbitData": carMappings,
- "pageNo": 0,
- "pageSize": 50,
- }
- data = json.dumps(data)
- response = requests.post(url, headers=headerss, data=data)
- if response.json().get('content'):
- content=[]
- for i in response.json().get('content'):
- if i.get('exhaustScale'):
- displacement = str(int(i.get('exhaustScale')) / 1000)
- else:
- displacement = ''
- content.append(
- {
- "modelCode": i.get('modelCode'),
- "modelName": i.get('modelCName'),
- "brandCN": i.get('carBrand'),
- "series": i.get('familyName'),
- "importFlag": i.get('vehicleClass'),
- "ratedPassengerCapacity": i.get('seatCount'),
- "displacement": displacement,
- "marketYear": i.get('carYear'),
- "replacementValue": i.get('purchasePriceNotTax'),
- "vehicleDescription": i.get('remark'),
- "refCode1": '',
- "refCode2": '',
- "gearboxType": i.get('transmissiontType'),
- "remark": i.get('remark'),
- "fuelType": "",
- "fuelTypeCode": i.get('energyType') if i.get('energyType') else '0',
- "energyTypes": i.get('energyType') if i.get('energyType') else '0',
- "wholeWeight": '',
- "powerScale": i.get('power'),
- "vehicleJingyo": '',
- "vehicleSeatMax": "0",
- "vehicleSeatMin": "0"
- }
- )
- return {
- 'code':200,
- 'content':content
- }
- else:
- return {
- 'code':400,
- 'content':[]
- }
- else:
- return {
- 'code': 400,
- 'content': []
- }
- def main(x):
- check_login()
- if token!='用户名、密码错误':
- return get_carinfo(x)
- else:
- return {
- 'code': 400,
- 'message':'用户名、密码错误'
- }
- if __name__ == '__main__':
- aa=main('LVVDC11B79D223498')
- print(aa.get('content'))
|