fix(card): 新增渠道cic
This commit is contained in:
@@ -165,6 +165,19 @@ class SiteApi:
|
||||
r = await self.post(url, headers=headers, json=payload)
|
||||
return r
|
||||
|
||||
async def cic(self, cert_number: str | int):
|
||||
"""中检检通"""
|
||||
url = 'https://www.zhongjianjiantong.com/Api/OrderRatingGoods/detail'
|
||||
payload = {
|
||||
'cert_no': cert_number
|
||||
}
|
||||
headers = {
|
||||
'Content-Type': 'application/json;charset=UTF-8',
|
||||
'Referer': "https://www.zhongjianjiantong.com/web/index.html",
|
||||
}
|
||||
r = await self.post(url, headers=headers, json=payload)
|
||||
return r
|
||||
|
||||
async def close(self):
|
||||
await self.session.close()
|
||||
|
||||
@@ -184,6 +197,7 @@ class CardScraper:
|
||||
'gbtc': self.gbtc,
|
||||
'ccg': self.ccg,
|
||||
'bctc': self.bctc,
|
||||
'cic': self.cic,
|
||||
}
|
||||
return self._handlers
|
||||
|
||||
@@ -197,7 +211,8 @@ class CardScraper:
|
||||
info_elements = html.xpath('//div[@hidden and @id]/div[contains(@class, "py-3")]')
|
||||
info = dict()
|
||||
for info_element in info_elements:
|
||||
name = info_element.xpath('./dt[1]').xpath('string()').get() or info_element.xpath('./dt/template/@id').get() or ''
|
||||
name = info_element.xpath('./dt[1]').xpath('string()').get() or info_element.xpath(
|
||||
'./dt/template/@id').get() or ''
|
||||
name = re.sub(r'\(|\)', '', name)
|
||||
name = name.lower().replace(' ', '_').replace('/', '_')
|
||||
value = info_element.xpath('./dd[1]').xpath('string()').get()
|
||||
@@ -430,7 +445,43 @@ class CardScraper:
|
||||
return {
|
||||
'cert_number': item['cert_number'],
|
||||
'data': item,
|
||||
'raw_data': result.get('info'),
|
||||
'raw_data': details,
|
||||
}
|
||||
|
||||
async def cic(self, cert_number: str | int) -> dict | None:
|
||||
"""中检检通"""
|
||||
r = await self.api.cic(cert_number)
|
||||
result = r.json()
|
||||
if result.get('code') != 200:
|
||||
return
|
||||
|
||||
details = jsonpath(result, '$.data.obj_order_rating_goods', first=True)
|
||||
|
||||
item = dict(cert_number=None)
|
||||
# 评级卡号
|
||||
item['cert_number'] = details.get('cert_no')
|
||||
# 年份
|
||||
item['card_year'] = jsonpath(details, '$.obj_detail.fxnf', first=True)
|
||||
# 卡片品牌
|
||||
item['card_brand'] = jsonpath(details, '$.obj_brand.title', first=True)
|
||||
# 卡片评分
|
||||
item['card_score'] = details.get('score')
|
||||
# 卡片名称
|
||||
item['card_name'] = details.get('goods_name')
|
||||
# 卡片编号
|
||||
item['card_number'] = details.get('tag_no')
|
||||
# 卡片类型 无
|
||||
# 卡片正、反图片(远程)
|
||||
item['card_spare_picture'] = {
|
||||
'front_picture': jsonpath(details, '$.lst_images[0]', first=True),
|
||||
'reverse_picture': jsonpath(details, '$.lst_images[1]', first=True)
|
||||
}
|
||||
# 来源
|
||||
item['source'] = 'cic'
|
||||
return {
|
||||
'cert_number': item['cert_number'],
|
||||
'data': item,
|
||||
'raw_data': details,
|
||||
}
|
||||
|
||||
async def choice(self, platform: str, cert_number: str | int) -> dict | None:
|
||||
|
||||
Reference in New Issue
Block a user