同花顺问财数据提取器

v1.0.0

从同花顺问财(iwencai.com) AI选股页面批量抓取涨停股票数据,使用 agent-browser 通过 Chrome CDP 连接操作浏览器,将数据存入 SQLite 数据库,并可导出为 Excel 汇总报告。适用场景:用户要求爬取/抓取/提取问财涨停数据、查询特定日期涨停股票、批量获取历史涨停记录、生...

0· 162·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for hj2916/iwencai-data-extractor.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "同花顺问财数据提取器" (hj2916/iwencai-data-extractor) from ClawHub.
Skill page: https://clawhub.ai/hj2916/iwencai-data-extractor
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install iwencai-data-extractor

ClawHub CLI

Package manager switcher

npx clawhub@latest install iwencai-data-extractor
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
技能名/描述(从问财抓取涨停数据、存 SQLite、导出 Excel)与脚本功能基本一致。需要注意的是文档和脚本都包含硬编码的、针对特定用户与磁盘路径的默认值(例如 C:\Users\JacobWu 开头的 agent 路径和 D:\workbuddyclaw\... 的数据库/数据目录),但技能包没有安装步骤说明也没有把文件放到这些路径的机制,用户需手动修改/放置文件并确保 agent-browser 与 Chrome CDP 可用。硬编码路径是可解释为配置疏漏,但与功能目的相符。
Instruction Scope
SKILL.md 与脚本只描述在用户机器上通过 agent-browser 控制本地 Chrome(需以 --remote-debugging-port 启动并导航到指定页面)来抓取页面 DOM,并将数据写入本地 SQLite,再用本地 Python 导出 Excel。指令未要求读取其他系统凭据或上传到第三方服务器。但注意:说明鼓励从“用户记忆或直接询问”获取本地路径,且示例命令使用绝对路径(D:\workbuddyclaw\...),这在不同用户环境下不适用;代理运行时会调用本地进程和浏览器,用户应确认同意。
Install Mechanism
没有 install spec —— 是 instruction-only(但包含脚本文件)。没有从外部 URL 下载或执行不明二进制,风险较低。需要用户在本地安装 agent-browser、Chrome,并有 Python 及相关库(pandas、openpyxl)。
Credentials
不请求任何环境变量或外部凭据(requires.env 为空)。脚本只访问本地文件系统(数据库、输出路径)和本地 Chrome CDP(localhost:9222),没有向外部网络发送抓取结果或向未知远端上报。
Persistence & Privilege
技能未要求始终启用(always:false),也不修改其他技能或系统级配置。它仅包含可执行脚本,写入本地 SQLite/Excel 属于其功能范围。
Assessment
总体上这个技能实现与其描述一致,但在安装/运行前请注意: - 脚本包含多个硬编码的绝对路径(示例为 JacobWu 的用户目录与 D:\workbuddyclaw),请在运行前把脚本中的 AGENT、DB_PATH、数据目录等改为你自己的路径;技能包没有自动安装或放置文件到这些位置。 - 该工具通过 agent-browser 控制你本地的 Chrome(需以 --remote-debugging-port 启动并打开问财页面)。这会让脚本能够操作浏览器页面和 DOM;在运行前确认你理解并允许该行为,最好使用单独的浏览器用户数据目录(--user-data-dir)以隔离账户/扩展/会话数据。 - 脚本将抓取问财网站的数据并写入本地 SQLite,然后生成 Excel,不会默认把数据发送到外部服务器。但仍建议在受信任的环境运行,审阅脚本(crawl.py、export_excel.py)以确认没有被修改的远程上报逻辑。 - 确认已安装 Python 以及依赖(pandas、openpyxl)。建议先在受控环境(虚拟机或隔离目录)测试,确保路径、agent-browser 与 Chrome CDP 正常工作。 - 最后,检查目标网站的使用条款与爬取政策,确保你的抓取行为符合法律和网站规则。

Like a lobster shell, security has layers — review code before you run it.

latestvk97a0jcqqn4mhjspqbarhxmczh83xpgz
162downloads
0stars
1versions
Updated 4w ago
v1.0.0
MIT-0

同花顺问财数据提取器

环境配置

使用前确认以下路径(可从用户记忆或直接询问):

配置项默认值
PythonC:\Users\JacobWu\AppData\Local\Programs\Python\Python312\python.exe
agent-browserC:\Users\JacobWu\AppData\Roaming\npm\agent-browser.cmd
Chrome CDP端口9222
数据库路径D:\workbuddyclaw\iwencai_zt.db
数据目录D:\workbuddyclaw\iwencai_data\

启动 Chrome 调试模式(用户须手动执行一次):

chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\ChromeDebug

然后在 Chrome 中手动导航到 https://www.iwencai.com/unifiedwh/stockpicker/(AI选股页面)。

核心工作流

单日 / 批量爬取

使用 scripts/crawl.py,修改顶部配置后运行:

# Windows PowerShell/cmd,用 cmd /c 规避编码问题
cmd /c python D:\workbuddyclaw\iwencai_data\crawl.py

脚本关键参数(脚本顶部修改):

  • TRADE_DAYS:要爬取的日期列表(ISO格式 YYYY-MM-DD
  • AGENT:agent-browser 路径
  • DB_PATH:SQLite 数据库路径

导出 Excel 报告

使用 scripts/export_excel.py,生成包含5个Sheet的汇总报告:

cmd /c python D:\workbuddyclaw\iwencai_data\export_excel.py

关键技术细节(必读)

agent-browser 调用规范

# 正确:不要加 --timeout 参数(子命令不支持,会报 Unknown command)
cmd = [AGENT, "--cdp", "9222"] + list(args)

# eval 输出是双层 JSON 包裹,需双层解析
raw = ab("eval", js)
step1 = json.loads(raw)
result = json.loads(step1) if isinstance(step1, str) else step1

搜索框定位

snapshot 中搜索框类型为 textbox,带 "筛选条件" 提示文字:

for line in snap.split('\n'):
    if 'textbox' in line.lower() and 'ref=' in line:
        if '筛选条件' in line or '请输入您的' in line:
            m = re.search(r'ref=(e\d+)', line)
            if m:
                search_ref = m.group(1)
                break

分页翻页(Vue.js 兼容)

普通 click() 无效,必须用 dispatchEvent 触发 Vue 响应式事件:

// 分页 class 是 .page-item(不是 .iw-asidetable-page-item)
var items = document.querySelectorAll('.page-item');
// 找到目标页码元素后:
var evt = new MouseEvent('click', {bubbles: true, cancelable: true, view: window});
a.dispatchEvent(evt);

Windows 编码

所有 Python 脚本顶部加:

import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')

运行脚本用 cmd /c python script.py(不用 PowerShell 直接调用)。

数据库结构

表名:zt_stocks

字段类型说明
trade_dateTEXT交易日期 YYYY-MM-DD
stock_codeTEXT股票代码(6位)
stock_nameTEXT股票名称
priceREAL收盘价
change_pctREAL涨跌幅(%)
zt_timeTEXT涨停时间
zt_statusTEXT涨停状态
volumeTEXT成交量
amountTEXT成交额
first_zt_timeTEXT首次涨停时间
lb_countINTEGER连板数
zt_typeTEXT涨停类型(首板/二连板等)
float_mvTEXT流通市值
vol_ratioTEXT量比
themesTEXT所属题材(+分隔)
zt_tagsTEXT涨停标签
total_mvTEXT总市值

参考文档

  • 爬取脚本完整实现:见 references/crawl_reference.md
  • 常见问题排查:见 references/troubleshooting.md

Comments

Loading comments...