妙手导入:8 次格式试错全记录(CSV 不受理/要求 xls+产品主编号表头/官方模板缺该列),下一步用 xlwt 生成 xls
This commit is contained in:
1 parent
bbd5eb4bcf
commit
69c7ee5fd5
2 files changed
+40
No files matched your search
@@ -103,3 +103,30 @@ await c.send('DOM.setFileInputFiles', { files: ['/path/ms_import.csv'], nodeId }
|
||||
### 生成脚本
|
||||
`/home/admin9webs/miaoshou/dl/ms_import.csv`(47 行,已排除无水印图的 `601964534137`),
|
||||
由 `tk_input.json` 生成:链接 = `https://detail.1688.com/offer/<pid>.html`。
|
||||
|
||||
## 导入格式的完整试错记录(第 2 轮,全部失败,附下一步)
|
||||
|
||||
| # | 上传内容 | 结果 |
|
||||
|---|---|---|
|
||||
| 1 | `.txt` 一行一链接 | ❌ `…文件内容不是json格式` |
|
||||
| 2 | `.json` URL 数组 | ❌ `…文件标题缺失` |
|
||||
| 3 | `.json` 每项带 `title/url/链接地址` | ❌ 同上 |
|
||||
| 4 | `.json` 根节点 `title/标题` + `links/data/list` | ❌ 同上 |
|
||||
| 5 | `.csv`(模板 4 列,UTF-8 **带 BOM**) | 接受入列 → 解析失败:`未识别到:【产品主编号】表头` |
|
||||
| 6 | `.csv`(补 `产品主编号` 列,带 BOM) | ❌ 同一句 |
|
||||
| 7 | `.csv`(补 `产品主编号` 列,**无 BOM** UTF-8) | ❌ 同一句(**BOM 不是原因**) |
|
||||
| 8 | **官方模板 `.xls` 原样上传** | 前端直接拒:`未匹配到数据,请检查模板是否正确`(空模板无数据行),**未产生导入任务** |
|
||||
|
||||
### 结论
|
||||
- 解析器要的是**带数据的 `.xls`(或 `.xlsx`)**,且表头里必须有 **`产品主编号`**;
|
||||
- **CSV 看起来不管用**(即使表头齐全、去掉 BOM,仍只报缺 `【产品主编号】`);
|
||||
- 下载到的模板只有 4 列(`链接地址(必填)/产品标题/价格(RMB)/促销价(RMB)`),
|
||||
**缺 `产品主编号`** → 服务端模板与解析器版本不一致(错误提示也写着「请下载最新模版」)。
|
||||
|
||||
### 下一步(就一件事)
|
||||
用能写 Excel 的库生成 `.xls`/`.xlsx`(本机:`pip install --break-system-packages xlwt` 或 `openpyxl`),
|
||||
表头 = `产品主编号, 链接地址(必填), 产品标题, 价格(RMB)`,47 行数据,再上传。
|
||||
若仍报缺表头,则说明**必须改用服务端最新模板**(可能要在页面上换一个平台/入口重新下载一次模板)。
|
||||
|
||||
### 当前队列状态
|
||||
已导入文件列表里有 3 条失败任务(`ms_import` / `ms_import2` / `ms_nobom`),可在页面上「删除文件」清掉。
|
||||
@@ -0,0 +1,13 @@
|
||||
import { listPages, wait } from '/home/admin9webs/shein建品/sh_lib.mjs';
|
||||
import { CDP, SAN as S } from '/tmp/cdp3.mjs';
|
||||
const t = (await listPages()).find(x=>/91miaoshou/i.test(x.url));
|
||||
const c = await CDP.connect(t.webSocketDebuggerUrl);
|
||||
await c.send('Page.enable'); await c.send('Runtime.enable');
|
||||
await c.send('Page.navigate', { url: 'https://erp.91miaoshou.com/common_collect_box/index?fetchType=importCopy' });
|
||||
await wait(12000);
|
||||
const o = await c.evalJS(`(()=>{const rows=[...document.querySelectorAll('tr')].filter(e=>e.offsetParent!==null)
|
||||
.map(e=>(e.innerText||'').replace(/\\s+/g,' ').trim()).filter(t=>t&&!/文件名称/.test(t)&&/ms_import|解析|成功|失败/.test(t)).slice(0,4);
|
||||
return JSON.stringify({rows});})()`);
|
||||
console.log('导入列表:', S(String(o)).slice(0,600));
|
||||
try{ await c.shot('/tmp/ms_status.jpg'); console.log('shot ok'); }catch(e){}
|
||||
process.exit(0);
|
||||
Reference in new issue
Block a user