This commit is contained in:
fuzhongyun 2026-03-11 18:23:55 +08:00
parent 18338612ba
commit 36f30b85cc
3 changed files with 23 additions and 28 deletions

4
.gitignore vendored
View File

@ -1,4 +1,6 @@
scbank_data.jsonl
data/
output/
.trae/
.trae/
实物系统API文档.pdf
*.pyc

View File

@ -56,17 +56,17 @@ class SCBankCollector:
if (data && typeof data === 'object') {
const str = JSON.stringify(data);
// 1. 过滤噪音 (IsQX)
if (str.includes('IsQX') || (data.body && data.body.IsQX)) {
return data;
}
// 2. 识别列表 (rows list)
const isList = (data.rows && Array.isArray(data.rows) && data.rows.length > 0) ||
(data.list && Array.isArray(data.list) && data.list.length > 0);
// 1. 识别列表 (pageDataList)
const isList = data.body &&
data.body.pageDataList &&
Array.isArray(data.body.pageDataList);
// 3. 识别详情 (orderNo + 长度校验)
const isDetail = str.includes('orderNo') && str.length > 300;
// 2. 识别详情 (orderNo + goodsInfoList)
// 详情页通常包含 orderNo goodsInfoList且不包含 pageDataList
const isDetail = data.body &&
data.body.orderNo &&
data.body.goodsInfoList &&
!data.body.pageDataList;
if (isList) {
console.log('__INTERCEPTED_LIST__:' + str);
@ -114,7 +114,7 @@ class SCBankCollector:
try:
self.page.wait_for_url("**/homePage**", timeout=0)
self.log("检测到登录成功!")
time.sleep(2)
time.sleep(1)
except Exception as e:
self.log(f"登录等待超时或失败: {e}")
return
@ -124,7 +124,7 @@ class SCBankCollector:
self.log(f"跳转至订单管理页面: {self.target_url}")
self.page.goto(self.target_url)
self.page.wait_for_load_state("domcontentloaded")
time.sleep(3)
time.sleep(0.5)
# 3. 筛选状态
self._filter_status()
@ -153,7 +153,7 @@ class SCBankCollector:
self.browser.close()
def _filter_status(self):
self.log("筛选: 订单类型 -> 待发货")
self.log("正在点击“待发货”标签页")
try:
# 定位 Tab
tab_selector = ".el-tabs__item:has-text('待发货')"
@ -162,19 +162,10 @@ class SCBankCollector:
if tab.count() > 0:
if "is-active" not in tab.get_attribute("class"):
tab.click()
self.log(" -> 点击“待发货”Tab")
self.log("已点击“待发货”标签页")
time.sleep(1)
else:
self.log(" -> 已处于“待发货”Tab")
# 点击查询
query_btn = self.page.locator("button.el-button--primary:has-text('查询')")
if query_btn.count() > 0:
query_btn.click()
self.log(" -> 点击“查询”刷新列表")
time.sleep(3)
else:
self.log(" [WARN] 未找到“查询”按钮")
self.log("“待发货”标签页已经是选中状态")
else:
self.log(" [WARN] 未找到“待发货”Tab")
except Exception as e:

View File

@ -150,11 +150,13 @@ class SCBankProcessor:
results.append({
"处理状态": "成功" if success else "失败",
"失败原因": "" if success else msg,
"商城订单号": order_no,
"下单时间": order_time,
"订单编号": order_no,
"下单用户手机号码": detail.get("orderMobile"),
"商户名称": detail.get("exMerchant"),
"订单金额": detail.get("orderAmt"),
"商品名称": goods_name,
"内部商品ID": internal_pid,
"订单金额": detail.get("orderAmt"),
"下单时间": order_time
})
# 5. 导出 Excel