This commit is contained in:
parent
18338612ba
commit
36f30b85cc
|
|
@ -1,4 +1,6 @@
|
||||||
scbank_data.jsonl
|
scbank_data.jsonl
|
||||||
data/
|
data/
|
||||||
output/
|
output/
|
||||||
.trae/
|
.trae/
|
||||||
|
实物系统API文档.pdf
|
||||||
|
*.pyc
|
||||||
|
|
@ -56,17 +56,17 @@ class SCBankCollector:
|
||||||
if (data && typeof data === 'object') {
|
if (data && typeof data === 'object') {
|
||||||
const str = JSON.stringify(data);
|
const str = JSON.stringify(data);
|
||||||
|
|
||||||
// 1. 过滤噪音 (IsQX)
|
// 1. 识别列表 (pageDataList)
|
||||||
if (str.includes('IsQX') || (data.body && data.body.IsQX)) {
|
const isList = data.body &&
|
||||||
return data;
|
data.body.pageDataList &&
|
||||||
}
|
Array.isArray(data.body.pageDataList);
|
||||||
|
|
||||||
// 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);
|
|
||||||
|
|
||||||
// 3. 识别详情 (orderNo + 长度校验)
|
// 2. 识别详情 (orderNo + goodsInfoList)
|
||||||
const isDetail = str.includes('orderNo') && str.length > 300;
|
// 详情页通常包含 orderNo 和 goodsInfoList,且不包含 pageDataList
|
||||||
|
const isDetail = data.body &&
|
||||||
|
data.body.orderNo &&
|
||||||
|
data.body.goodsInfoList &&
|
||||||
|
!data.body.pageDataList;
|
||||||
|
|
||||||
if (isList) {
|
if (isList) {
|
||||||
console.log('__INTERCEPTED_LIST__:' + str);
|
console.log('__INTERCEPTED_LIST__:' + str);
|
||||||
|
|
@ -114,7 +114,7 @@ class SCBankCollector:
|
||||||
try:
|
try:
|
||||||
self.page.wait_for_url("**/homePage**", timeout=0)
|
self.page.wait_for_url("**/homePage**", timeout=0)
|
||||||
self.log("检测到登录成功!")
|
self.log("检测到登录成功!")
|
||||||
time.sleep(2)
|
time.sleep(1)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log(f"登录等待超时或失败: {e}")
|
self.log(f"登录等待超时或失败: {e}")
|
||||||
return
|
return
|
||||||
|
|
@ -124,7 +124,7 @@ class SCBankCollector:
|
||||||
self.log(f"跳转至订单管理页面: {self.target_url}")
|
self.log(f"跳转至订单管理页面: {self.target_url}")
|
||||||
self.page.goto(self.target_url)
|
self.page.goto(self.target_url)
|
||||||
self.page.wait_for_load_state("domcontentloaded")
|
self.page.wait_for_load_state("domcontentloaded")
|
||||||
time.sleep(3)
|
time.sleep(0.5)
|
||||||
|
|
||||||
# 3. 筛选状态
|
# 3. 筛选状态
|
||||||
self._filter_status()
|
self._filter_status()
|
||||||
|
|
@ -153,7 +153,7 @@ class SCBankCollector:
|
||||||
self.browser.close()
|
self.browser.close()
|
||||||
|
|
||||||
def _filter_status(self):
|
def _filter_status(self):
|
||||||
self.log("筛选: 订单类型 -> 待发货")
|
self.log("正在点击“待发货”标签页")
|
||||||
try:
|
try:
|
||||||
# 定位 Tab
|
# 定位 Tab
|
||||||
tab_selector = ".el-tabs__item:has-text('待发货')"
|
tab_selector = ".el-tabs__item:has-text('待发货')"
|
||||||
|
|
@ -162,19 +162,10 @@ class SCBankCollector:
|
||||||
if tab.count() > 0:
|
if tab.count() > 0:
|
||||||
if "is-active" not in tab.get_attribute("class"):
|
if "is-active" not in tab.get_attribute("class"):
|
||||||
tab.click()
|
tab.click()
|
||||||
self.log(" -> 点击“待发货”Tab")
|
self.log("已点击“待发货”标签页")
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
else:
|
else:
|
||||||
self.log(" -> 已处于“待发货”Tab")
|
self.log("“待发货”标签页已经是选中状态")
|
||||||
|
|
||||||
# 点击查询
|
|
||||||
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] 未找到“查询”按钮")
|
|
||||||
else:
|
else:
|
||||||
self.log(" [WARN] 未找到“待发货”Tab")
|
self.log(" [WARN] 未找到“待发货”Tab")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
|
|
@ -150,11 +150,13 @@ class SCBankProcessor:
|
||||||
results.append({
|
results.append({
|
||||||
"处理状态": "成功" if success else "失败",
|
"处理状态": "成功" if success else "失败",
|
||||||
"失败原因": "" if success else msg,
|
"失败原因": "" if success else msg,
|
||||||
"商城订单号": order_no,
|
"下单时间": order_time,
|
||||||
|
"订单编号": order_no,
|
||||||
|
"下单用户手机号码": detail.get("orderMobile"),
|
||||||
|
"商户名称": detail.get("exMerchant"),
|
||||||
|
"订单金额": detail.get("orderAmt"),
|
||||||
"商品名称": goods_name,
|
"商品名称": goods_name,
|
||||||
"内部商品ID": internal_pid,
|
"内部商品ID": internal_pid,
|
||||||
"订单金额": detail.get("orderAmt"),
|
|
||||||
"下单时间": order_time
|
|
||||||
})
|
})
|
||||||
|
|
||||||
# 5. 导出 Excel
|
# 5. 导出 Excel
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue