Files
VisionL/docs/usage/examples.md
T

4.1 KiB

VisionL 使用示例

基于实际测试验证的场景。

场景一:搜索引擎查询

# 1. 打开百度
curl -s -X POST http://127.0.0.1:9527/pages \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.baidu.com","alias":"search"}'

# 2. 获取首页文本
curl -s http://127.0.0.1:9527/pages/search/text

# 3. 输入搜索词并搜索
curl -s -X POST http://127.0.0.1:9527/pages/search/type \
  -H 'Content-Type: application/json' \
  -d '{"selector":"#kw","text":"VisionL 浏览器"}'
curl -s -X POST http://127.0.0.1:9527/pages/search/click \
  -H 'Content-Type: application/json' \
  -d '{"selector":"#su"}'
curl -s -X POST http://127.0.0.1:9527/pages/search/wait \
  -H 'Content-Type: application/json' \
  -d '{"ms":2000}'

# 4. 获取搜索结果
curl -s http://127.0.0.1:9527/pages/search/text

# 5. 截图保存
curl -s http://127.0.0.1:9527/pages/search/screenshot | jq -r '.data.base64' | base64 -d > result.png

# 6. 关闭
curl -s -X DELETE http://127.0.0.1:9527/pages/search

场景二:多页面信息收集

# 同时打开多个信息源
curl -s -X POST http://127.0.0.1:9527/pages \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.baidu.com","alias":"baidu"}'
curl -s -X POST http://127.0.0.1:9527/pages \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.bing.com","alias":"bing"}'

# 分别提取内容
curl -s http://127.0.0.1:9527/pages/baidu/text
curl -s http://127.0.0.1:9527/pages/bing/text

# 查看所有页面
curl -s http://127.0.0.1:9527/pages

# 关闭指定页面
curl -s -X DELETE http://127.0.0.1:9527/pages/baidu

场景三:Cookie 管理

# 查看页面 Cookie(百度首页返回 8 个 Cookie)
curl -s http://127.0.0.1:9527/pages/baidu/cookies

# 设置自定义 Cookie
curl -s -X POST http://127.0.0.1:9527/pages/baidu/cookies \
  -H 'Content-Type: application/json' \
  -d '{"name":"session","value":"abc123","domain":".baidu.com"}'

# 删除特定 Cookie
curl -s -X DELETE http://127.0.0.1:9527/pages/baidu/cookies/session

场景四:网络请求监控

# 打开页面后查看网络请求日志
curl -s http://127.0.0.1:9527/pages/baidu/network

# 返回包含请求 URL、方法、状态码等信息:
# [{"type":"response","url":"https://pss.bdstatic.com/...","status":200,...}]

场景五:JS 数据提取

# 获取页面标题
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
  -H 'Content-Type: application/json' \
  -d '{"code":"document.title"}'
# {"ok":true,"data":{"result":"百度一下,你就知道"}}

# 获取链接数量
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
  -H 'Content-Type: application/json' \
  -d '{"code":"document.querySelectorAll(\"a\").length"}'

# 获取页面 meta 信息
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
  -H 'Content-Type: application/json' \
  -d '{"code":"document.querySelector(\"meta[name=description]\")?.content"}'

场景六:滚动截图

# 滚动页面
curl -s -X POST http://127.0.0.1:9527/pages/baidu/scroll \
  -H 'Content-Type: application/json' \
  -d '{"deltaY":500}'

# 滚动到底部
curl -s -X POST http://127.0.0.1:9527/pages/baidu/scroll \
  -H 'Content-Type: application/json' \
  -d '{"toBottom":true}'

# 截图
curl -s http://127.0.0.1:9527/pages/baidu/screenshot | jq -r '.data.base64' | base64 -d > scrolled.png

场景七:切换指纹配置

# 查看可用配置
curl -s http://127.0.0.1:9527/profiles

# 使用 Windows Chrome 指纹打开页面
curl -s -X POST http://127.0.0.1:9527/pages \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.baidu.com","alias":"win","profile":"desktop-windows"}'

场景八:页面持久化验证

# 1. 打开页面
curl -s -X POST http://127.0.0.1:9527/pages \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.baidu.com","alias":"persistent"}'

# 2. 关闭 curl 连接(页面不消失)
# 3. 重新查询 — 页面仍在
curl -s http://127.0.0.1:9527/pages/persistent
# {"ok":true,"data":{"id":"p_xxx","status":"active",...}}

# 4. 只有显式 kill 才关闭
curl -s -X DELETE http://127.0.0.1:9527/pages/persistent