123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import time
- import requests
- import execjs
- from spiders.pingan.Login.pa_login import pinganlogin
- from config import *
- class PA_xubao(object):
- def __init__(self,uname,pwd,vin):
- self.uname=uname
- self.pwd=pwd
- self.vin=vin
- cookie=pinganlogin('DHJWA-87743', 'TIANqin2022').main()
- self.cookies = {
- 'USER_REDIS_COOKIE': cookie
- }
- self.headers = {
- 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
- 'Content-Type':'application/json;charset=UTF-8',
- }
- def get_sign(self):
- with open(js_path+'pingan/sign.js', 'r') as f:
- jscode = f.read()
- sign = execjs.compile(jscode).call('get_sign', '')
- return sign
- def get_info(self):
- sign=self.get_sign()
- json_data = {
- 'departmentCode': '23388',
- 'employeeCode': '2330004379',
- 'agentCode': '33760031',
- 'brokerCode': '',
- 'secondLevelDepartmentCode': '233',
- 'abroadCommercialFlag': False,
- 'containQtAndApply': '0',
- 'vehicleFrameNo': self.vin,
- 'timeStamp': sign[2],
- 'nonce': sign[0],
- 'sign': sign[1],
- }
- response = requests.post('https://icorepnbs.pingan.com.cn/icore_pnbs/do/quote/quickSearchx9m24g',cookies=self.cookies,headers=self.headers,json=json_data,)
- if response.json().get('policy'):
- for i in response.json().get('policy'):
- # print(i)
- if i.get('planCode')=='PL0100003':
- pl0100003PolicyNo=i.get('policyNo')
- pl0100003ApplyPolicyNo = i.get('applyPolicyNo')
- elif i.get('planCode')=='PL0100C51':
- pl0100c51PolicyNo = i.get('policyNo')
- pl0100c51ApplyPolicyNo = i.get('applyPolicyNo')
- sign1 = self.get_sign()
- json_data = {
- 'departmentCode': '23388',
- 'secondLevelDepartmentCode': '233',
- 'saleAgentCode': '2330004379',
- 'businessSourceCode': '2',
- 'businessSourceDetailCode': '3',
- 'channelSourceCode': '9',
- 'channelSourceDetailCode': 'V',
- 'productCode': '',
- 'bidFlag': '0',
- 'planCode': 'PL0100003',
- 'usageAttributeCode': '02',
- 'ownershipAttributeCode': '03',
- 'isSelectDriver': 0,
- 'insuredNumber': 1,
- 'voucherType': '1',
- 'isFromCNBS': '0',
- 'nbaHotshot': 'nbaHotshot',
- 'personnelFlag': '1',
- 'pl0100003PolicyNo': pl0100003PolicyNo,
- 'pl0100003ApplyPolicyNo': pl0100003ApplyPolicyNo,
- 'pl0100c51PolicyNo': pl0100c51PolicyNo,
- 'pl0100c51ApplyPolicyNo': pl0100c51ApplyPolicyNo,
- 'rateClassFlag': '20',
- 'insuranceType': '1',
- 'timeStamp': sign1[2],
- 'nonce': sign1[0],
- 'sign': sign1[1],
- }
- response = requests.post('https://icorepnbs.pingan.com.cn/icore_pnbs/do/app/quotation/quickSearchVoucher',
- cookies=self.cookies,
- headers=self.headers,
- json=json_data,
- )
- # print(111,response.text)
- kind_list=[]
- riskList=[]
- jq_endday=response.json().get('voucher').get('c51BaseInfo')
- sy_endday=response.json().get('voucher').get('c01BaseInfo')
- syxlist=response.json().get('voucher').get('c01DutyList')
- jqxlist=response.json().get('voucher').get('c51DutyList')
- if syxlist:
- for i in syxlist:
- name=i.get('dutyName')
- Amount=i.get('insuredAmount')
- if name=='机动车损失保险':
- code='A'
- elif name=='机动车第三者责任保险':
- code='B'
- elif name=='机动车车上人员责任保险(司机)':
- code='D3'
- elif name=='机动车车上人员责任保险(乘客)':
- code='D4'
- kind_list.append({
- "amount": Amount,
- "kindCode": code,
- "kindName": name
- })
- if jqxlist:
- riskList.append({
- "amount": 200000,
- "kindCode": "0507",
- 'startDate':jq_endday.get('insuranceBeginTime'),
- 'endDate': jq_endday.get('insuranceEndTime'),
- })
- if kind_list:
- riskList.append({
- "kindCode": "0510",
- 'startDate': sy_endday.get('insuranceBeginTime'),
- 'endDate': sy_endday.get('insuranceEndTime'),
- })
- return {
- 'code':200,
- 'kindList':kind_list,
- 'riskList':riskList,
- }
- else:
- return {
- 'code':400,
- 'message':'暂无续保信息'
- }
- def main(self):
- return self.get_info()
- if __name__ == '__main__':
- pa_xb=PA_xubao('DHJWA-87743', 'TIANqin2022','JTJBAMCA0K2083676')
- aa=pa_xb.main()
- print(aa)
|