branch_number检测逻辑
This commit is contained in:
@@ -376,16 +376,22 @@ class SurugayaClient:
|
||||
shipping_note_node = row.css_first("ul.shipping_campaing_info li.padT5")
|
||||
shipping_note = shipping_note_node.text().strip() if shipping_note_node else ""
|
||||
|
||||
# branch_number 优先从 detail_url 的查询参数中提取(与 detail_url 保持一致),
|
||||
# data-zaiko_data 仅作为兜底(极少数情况下 href 未携带 branch_number 时)。
|
||||
branch_number = ""
|
||||
campaign_node = row.css_first("li.ajax-campaign-placeholder")
|
||||
if campaign_node:
|
||||
zaiko_raw = campaign_node.attributes.get("data-zaiko_data") or ""
|
||||
if zaiko_raw:
|
||||
try:
|
||||
zaiko = json.loads(zaiko_raw)
|
||||
branch_number = str(zaiko.get("branch_number", ""))
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
if detail_href:
|
||||
branch_number = (parse_qs(urlparse(detail_href).query).get("branch_number") or [""])[0]
|
||||
|
||||
if not branch_number:
|
||||
campaign_node = row.css_first("li.ajax-campaign-placeholder")
|
||||
if campaign_node:
|
||||
zaiko_raw = campaign_node.attributes.get("data-zaiko_data") or ""
|
||||
if zaiko_raw:
|
||||
try:
|
||||
zaiko = json.loads(zaiko_raw)
|
||||
branch_number = str(zaiko.get("branch_number", ""))
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
|
||||
items.append(
|
||||
OtherShopItem(
|
||||
|
||||
Reference in New Issue
Block a user