archive: 紫鸟/HubStudio 文档快照(3889 篇 Markdown)

来源:紫鸟帮助中心/博客/主站资讯 + HubStudio API 文档/帮助中心 + 三个官方 skill 仓库。
只入库 Markdown 与元数据;原始 HTML 与 tarball 留在本机。
This commit is contained in:
admin9webs committed 2026-10-05 12:11:35 +00:00
commit 322b7737eb
3976 files changed
+695714

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
raw/
ARCHIVE.tar.gz
crawl.log
*.bak
__pycache__/
+3925
View File
File diff suppressed because it is too large. Load diff
+69
View File
@@ -0,0 +1,69 @@
# 紫鸟 / HubStudio 文档归档
抓取时间:**2026-10-05 12:11** 抓取工具:`crawl.py`(本目录,源码随包提交)
## 目录结构
| 路径 | 说明 |
|---|---|
| `md/<group>/…` | 提取后的 Markdown(可直接阅读/检索,gitea 里有) |
| `raw/<group>/…` | 原始响应(HTML 或 .md),**仅本地保留**,不入 git |
| `repos/` | 三个官方 Skill 仓库的文件级快照(见下) |
| `manifest.tsv` | 每页记录:group / url / http / bytes / sha256前16 / title |
| `INDEX.md` | 分组索引:标题 + 本地路径 + 来源 URL |
| `ARCHIVE.tar.gz` | 本地全量快照(含 raw/) |
## 统计
| group | 说明 | 计划 | 成功 | 失败 | md | raw | 体积 |
|---|---|---:|---:|---:|---:|---:|---:|
| `zn-help` | 紫鸟帮助中心(help/docs + help-v5/docs,共 468 页) | 468 | 468 | 7 | 468 | 468 | 5.1M + 92.7M |
| `zn-blog` | 紫鸟跨境知识库(WordPress 博客,255 篇) | 255 | 248 | 24 | 248 | 248 | 0.9M + 16.2M |
| `zn-news` | 紫鸟主站资讯与博客(/news + /blog,含 SEO 文章约 3000 篇) | 2992 | 2992 | 0 | 2992 | 2992 | 18.4M + 356.4M |
| `hs-api` | HubStudio API 文档(api-docs,Markdown 直出,160 页) | 160 | 160 | 0 | 160 | 160 | 1.0M + 35.5M |
| `hs-support` | HubStudio 帮助中心(support 站,首页可见的文章) | 21 | 21 | 0 | 21 | 21 | 0.1M + 0.8M |
合计:**3889 篇 Markdown**、3889 份原始响应、约 **527 MB**。
## 来源
- 紫鸟 sitemap:<https://www.ziniao.com/sitemap.xml>
- 紫鸟博客 sitemap:<https://blog.ziniao.com/sitemaps.xml>
- 紫鸟帮助中心:<https://www.ziniao.com/help/>
- 紫鸟开放平台:<https://open.ziniao.com/>
- 紫鸟官方 Skill 仓库:<https://github.com/ziniao-open/skills>
- 紫鸟官方 WebDriver/Skill Hub:<https://github.com/ziniao-open/skill-hub>
- HubStudio API 文档 sitemap:<https://api-docs.hubstudio.cn/sitemap.xml>
- HubStudio 帮助中心:<https://support-orig.hubstudio.cn/>
- HubStudio 官方 Skill 仓库:<https://github.com/hubstudio-Max/hubstudio-skill>
## 官方 Skill 仓库(repos/)
| 仓库 | 内容 |
|---|---|
| `repos/skills` | 紫鸟官方 skill 包(员工/角色/部门/账号/设备/店铺控制等),CC BY 4.0 |
| `repos/skill-hub` | 紫鸟 WebDriver 文档与示例(applyAuth/getBrowserList/startBrowser…) |
| `repos/hubstudio-skill` | HubStudio 官方 skill(含 ADB 连接、OpenClaw 教程、commands 清单) |
## 已知缺口(重要)
- **HubStudio 帮助中心(support 站)是 Baklib 托管的 SPA**:文章页无服务端内链、站点无 sitemap,
只能取到首页可见的文章(约 20 篇)。要抓全需登录态或渲染 JS,本归档不含。
- 紫鸟主站 `/blog/*` 与 WordPress 博客是两套内容,均按原样归档,可能有重叠主题。
- 页面内的图片/附件未下载(只存正文文本);需要时按 `raw/` 里的原始 URL 再取。
- 部分页面为 404/登录后可见,manifest 里 http 非 200 的行即失败项。
## 版权与使用
- 文档内容版权归各自厂商(紫鸟:福建紫讯信息科技;HubStudio:其运营方)所有,**本归档仅供内部查阅参考**,
不改变原授权;对外分发前请先确认授权。
- `repos/skills`、`repos/skill-hub`、`repos/hubstudio-skill` 为官方公开仓库快照,紫鸟 skill 包声明为 **CC BY 4.0**,使用时请保留署名。
## 复现
```bash
python3 crawl.py --list # 看各来源规模
python3 crawl.py # 全量抓取(幂等,可续抓)
python3 mirror_repos.py # 快照官方仓库
python3 package.py --push <remote>
```
Executable
+239
View File
@@ -0,0 +1,239 @@
#!/usr/bin/env python3
"""crawl.py — 把紫鸟 / HubStudio 的公开文档归档到本地(raw + markdown + manifest)。
设计要点
- 每个来源一个 group:raw/<group>/... 存原始响应,md/<group>/... 存提取后的 Markdown。
- 幂等/可续抓:某个 URL 的 md 已存在且非空就跳过(中断后重跑即可继续)。
- 礼貌抓取:默认 0.3s 间隔、2 次重试;不并发。
- manifest.tsv 记录 group / url / http / bytes / sha256 / title,便于之后核对完整性。
用法
./crawl.py --list # 只看各 group 的任务数
./crawl.py --group zn-help # 只抓某组
./crawl.py # 抓全部(groups 见 GROUPS)
"""
from __future__ import annotations
import argparse
import hashlib
import re
import sys
import time
import urllib.error
import urllib.parse
import urllib.request
from html.parser import HTMLParser
from pathlib import Path
ROOT = Path(__file__).resolve().parent
UA = ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/126.0.0.0 Safari/537.36')
DELAY = 0.3
TIMEOUT = 30
class Extract(HTMLParser):
"""极简 HTML→Markdown:只保留标题/段落/列表/表格/代码块的骨架。"""
SKIP = {'script', 'style', 'noscript', 'svg', 'head', 'nav', 'footer', 'header', 'form', 'iframe'}
BLOCK = {'p', 'div', 'section', 'article', 'li', 'tr', 'blockquote', 'pre', 'table'}
HEAD = {'h1': 1, 'h2': 2, 'h3': 3, 'h4': 4, 'h5': 5, 'h6': 6}
def __init__(self) -> None:
super().__init__(convert_charrefs=True)
self.parts: list[str] = []
self.skip = 0
self.in_title = False
self.title = ''
self.in_pre = False
def handle_starttag(self, tag, attrs):
if tag in self.SKIP:
self.skip += 1
elif tag == 'title':
self.in_title = True
elif tag == 'pre':
self.in_pre = True
self.parts.append('\n```\n')
elif tag in self.HEAD:
self.parts.append('\n\n' + '#' * self.HEAD[tag] + ' ')
elif tag == 'li':
self.parts.append('\n- ')
elif tag in self.BLOCK:
self.parts.append('\n\n')
elif tag == 'br':
self.parts.append('\n')
elif tag == 'td' or tag == 'th':
self.parts.append(' | ')
def handle_endtag(self, tag):
if tag in self.SKIP and self.skip:
self.skip -= 1
elif tag == 'title':
self.in_title = False
elif tag == 'pre':
self.in_pre = False
self.parts.append('\n```\n')
elif tag in self.HEAD or tag in self.BLOCK:
self.parts.append('\n')
def handle_data(self, data):
if self.in_title and not self.title:
self.title = data.strip()
if self.skip:
return
text = data if self.in_pre else re.sub(r'\s+', ' ', data)
if text.strip():
self.parts.append(text if self.in_pre else text.strip() + ' ')
def markdown(self) -> str:
t = ''.join(self.parts)
t = re.sub(r'[ \t]+', ' ', t)
t = re.sub(r' *\n *', '\n', t)
t = re.sub(r'\n{3,}', '\n\n', t)
return t.strip()
def fetch(url: str) -> tuple[int, bytes, str]:
# 中文路径/查询必须百分号编码,否则 urllib 直接失败(实测 blog 的 /tag/中文 会返回 0)
parts = urllib.parse.urlsplit(url)
url = urllib.parse.urlunsplit((
parts.scheme, parts.netloc,
urllib.parse.quote(parts.path, safe='/%'),
urllib.parse.quote(parts.query, safe='=&%'),
parts.fragment))
req = urllib.request.Request(url, headers={
'User-Agent': UA, 'Accept': '*/*', 'Accept-Language': 'zh-CN,zh;q=0.9'})
for attempt in range(3):
try:
with urllib.request.urlopen(req, timeout=TIMEOUT) as r:
return r.status, r.read(), r.headers.get('Content-Type', '')
except urllib.error.HTTPError as e:
if e.code in (403, 404, 410):
return e.code, b'', ''
time.sleep(1.5 * (attempt + 1))
except Exception: # noqa: BLE001
time.sleep(1.5 * (attempt + 1))
return 0, b'', ''
def safe_path(url: str) -> Path:
p = urllib.parse.urlparse(url)
path = p.path.strip('/') or 'index'
if path.endswith('/'):
path += 'index'
path = re.sub(r'[^A-Za-z0-9._/-]', '_', path)
return Path(p.netloc.replace(':', '_')) / (path if path.endswith(('.md', '.html')) else path + '.html')
def write(group: str, url: str, code: int, body: bytes, ctype: str) -> str:
raw_dir, md_dir = ROOT / 'raw' / group, ROOT / 'md' / group
rel = safe_path(url)
raw_path = raw_dir / rel
md_path = md_dir / rel.with_suffix('.md')
raw_path.parent.mkdir(parents=True, exist_ok=True)
md_path.parent.mkdir(parents=True, exist_ok=True)
raw_path.write_bytes(body)
if 'markdown' in ctype or url.endswith('.md'):
md_text = body.decode('utf-8', 'replace')
title = next((ln.lstrip('# ').strip() for ln in md_text.splitlines() if ln.startswith('#')), '')
else:
ex = Extract()
try:
ex.feed(body.decode('utf-8', 'replace'))
except Exception: # noqa: BLE001
pass
md_text = ex.markdown()
title = ex.title
header = f'<!-- source: {url} | fetched: {time.strftime("%Y-%m-%d %H:%M:%S")} | http: {code} -->\n\n'
md_path.write_text(header + md_text, encoding='utf-8')
sha = hashlib.sha256(body).hexdigest()
with (ROOT / 'manifest.tsv').open('a', encoding='utf-8') as f:
f.write(f'{group}\t{url}\t{code}\t{len(body)}\t{sha[:16]}\t{title[:80]}\n')
return title[:60]
def load_urls(group: str) -> list[str]:
f = ROOT / f'urls-{group}.txt'
if not f.exists():
return []
return [ln.strip() for ln in f.read_text(encoding='utf-8').splitlines() if ln.strip()]
def discover_hs_support(limit: int = 600) -> list[str]:
"""HubStudio support 站没有 sitemap:从首页 BFS 发现 /xxxx/xxxx 形式的文章链接。"""
seed = 'https://support-orig.hubstudio.cn/'
seen: set[str] = set()
queue = [seed]
out: list[str] = []
pat = re.compile(r'href="(/[0-9a-f]{4}/[0-9a-f]{4,6})"')
while queue and len(out) < limit:
u = queue.pop(0)
if u in seen:
continue
seen.add(u)
code, body, _ = fetch(u)
if code != 200 or not body:
continue
out.append(u)
html = body.decode('utf-8', 'replace')
for m in pat.findall(html):
full = urllib.parse.urljoin(seed, m)
if full not in seen and full not in queue:
queue.append(full)
time.sleep(DELAY)
return out
def main() -> int:
ap = argparse.ArgumentParser()
ap.add_argument('--group', action='append', default=[])
ap.add_argument('--list', action='store_true')
args = ap.parse_args()
groups = {
'zn-help': lambda: load_urls('zn-help'),
'zn-blog': lambda: load_urls('zn-blog'),
'zn-news': lambda: load_urls('zn-news'),
'hs-api': lambda: load_urls('hs-api'),
'hs-support': discover_hs_support,
}
if args.list:
for g, fn in groups.items():
print(f' {g:12s} {len(fn())} 条')
return 0
want = args.group or list(groups)
total = 0
for g in want:
urls = groups[g]()
(ROOT / f'urls-{g}.txt').write_text('\n'.join(urls) + '\n', encoding='utf-8')
ok = skip = fail = 0
print(f'== {g}: {len(urls)} 条 ==', flush=True)
for i, u in enumerate(urls, 1):
md = ROOT / 'md' / g / safe_path(u).with_suffix('.md')
if md.exists() and md.stat().st_size > 200:
skip += 1
continue
code, body, ctype = fetch(u)
if code == 200 and body:
title = write(g, u, code, body, ctype)
ok += 1
if i % 20 == 0:
print(f' [{i}/{len(urls)}] {title[:48]}', flush=True)
else:
fail += 1
with (ROOT / 'manifest.tsv').open('a', encoding='utf-8') as f:
f.write(f'{g}\t{u}\t{code}\t0\t-\t(fail)\n')
time.sleep(DELAY)
print(f' -> ok={ok} skip={skip} fail={fail}', flush=True)
total += ok
print(f'完成,新抓 {total} 页', flush=True)
return 0
if __name__ == '__main__':
sys.exit(main())
+483
View File
@@ -0,0 +1,483 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://api-docs.hubstudio.cn/8331450m0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/8945881m0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/8982261m0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052376e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052377e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052378e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052379e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052380e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052381e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052382e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052383e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052384e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052385e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052386e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052387e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052388e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052389e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/439846791e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/495680535e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052361e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052362e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052366e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052363e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052364e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052365e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052367e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052368e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052350e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052353e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/395424141e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052354e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052356e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052355e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052357e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052358e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/499587432e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/485630522e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052349e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/395427282e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380407020e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/8441493m0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761335e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761336e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761337e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761338e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761339e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761340e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761341e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761342e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/437761343e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052338e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052339e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052340e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052341e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052342e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052343e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052344e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052345e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052346e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052347e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052348e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052351e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052359e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052360e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/395416906e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/387838493e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/387998970e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/485520382e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/485535182e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/485632342e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/484966464e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/484966465e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/484966466e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/484966467e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/484966468e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052371e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052369e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052370e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052372e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052373e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052374e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/380052375e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845060e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845061e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845063e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845064e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845065e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845066e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845067e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/513790308e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845068e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845069e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/512845070e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/520145829e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/520145830e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/96521037f0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009459e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009460e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009461e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009462e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009463e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009464e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009465e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009466e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009467e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009468e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009469e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009470e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009471e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009472e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009473e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009474e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009475e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009476e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009477e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009478e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009479e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009480e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009481e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009482e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009483e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009484e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009485e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009486e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009487e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009488e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009489e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009490e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009491e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009492e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009493e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009494e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009495e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009496e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009497e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009498e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009499e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009500e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009501e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009502e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009503e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009504e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009505e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009506e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009507e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009508e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009509e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009510e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009511e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009512e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009513e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009514e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009515e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009516e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009517e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009518e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009519e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009520e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009521e0</loc>
</url>
<url>
<loc>https://api-docs.hubstudio.cn/519009522e0</loc>
</url>
</urlset>
+81
View File
@@ -0,0 +1,81 @@
# 删除环境分组
## OpenAPI Specification
```yaml
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/api/v1/group/del:
post:
summary: 删除环境分组
deprecated: false
description: 删除指定名称的环境分组。删除成功后返回true
tags:
- Hubstudio local API/分组管理
parameters:
- name: Accept-Language
in: header
description: 默认请求语言
example: zh-CN
schema:
type: string
default: zh-CN
requestBody:
content:
application/json:
schema:
type: object
properties:
tagCode:
description: 删除指定名称的分组
type: string
required:
- tagCode
x-apifox-orders:
- tagCode
example:
tagCode: '8008329'
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
msg:
type: string
title: 响应消息
code:
type: integer
title: 业务状态码
data:
type: boolean
title: 业务数据载体
x-apifox-orders:
- msg
- code
- data
headers: {}
x-apifox-name: 成功
security: []
x-apifox-folder: Hubstudio local API/分组管理
x-apifox-status: released
x-run-in-apifox: https://app.apifox.com/web/project/7443932/apis/api-380052373-run
components:
schemas: {}
securitySchemes:
Authorization:
type: apikey
in: header
name: Authorization
servers:
- url: http://127.0.0.1:6873
description: 正式环境
security: []
```
+601
View File
@@ -0,0 +1,601 @@
<!DOCTYPE html>
<html
data-controller="wechat-share"
data-water-mark-text-value="Hubstudio"
>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>开始使用Hubstudio | Hubstudio</title>
<link rel="icon" type="image/png" href="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/1691028370762/6995232808_72519522557_24875.png">
<meta name='them' content="#4076FE">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="W5pYqhIv7dywg2zA4pCVJXzWOitxupTz6n1mgNI/1ELOAnJQqZgX5Dx/Tc6hsz7m+teioSsBImDmR5T7wY/WvQ==" />
<link rel="stylesheet" media="all" href="https://assets.bk-cdn01.com/assets/tenant_frontend-87319b93860703473f57b9a320aa12ae1c83dfa8495f65c90d95b04ff1d789fd.css" />
<link rel="stylesheet" media="all" href="https://assets.bk-cdn01.com/assets/packs/css/vendors~admin~tenant/frontend_tailwind-d5f04e3c.chunk.css" />
<link rel="stylesheet" media="all" href="https://assets.bk-cdn01.com/assets/packs/css/tenant/frontend_tailwind-da10b66d.chunk.css" />
<link rel="stylesheet" href="https://assets.bk-cdn01.com/templates/tailwords/1/assets/stylesheets/animate.min.css?_t=1727159778" type="text/css" media="all"/>
<link rel="stylesheet" href="https://assets.bk-cdn01.com/templates/tailwords/1/assets/stylesheets/custom.css?_t=1727159778" type="text/css" media="all"/>
<style>
:root {
--color-primary: #4076FE;
--animate-delay: 0.5s;
}
.banner-image {
background-image: url("https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/1690982988461/%E8%83%8C%E6%99%AF.png");
}
.banner-mask {
background-color: transparent;
}
.bg-footer {
background: #464646;
background: linear-gradient(to right, #464646, #6d6d6d);
}
@media screen and (max-width: 540px) {
.editor_js--embed > iframe {
min-height: 273px;
}
.banner-image {
background-image: url("https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/1690982993941/%E6%97%A0%E7%BA%BF%E7%AB%AF.jpg");
}
}
b.highlight {
color: var(--color-primary);
}
</style>
<script type="text/javascript" src="https://assets.bk-cdn01.com/templates/tailwords/1/assets/javascripts/jquery.min.js?_t=1727159778" defer></script>
<script type="text/javascript">
(function(){
scroll_top = 0
addEventListener("turbo:before-render", function(){
let page_tree = document.querySelector("[data-turbo-permanent]#page-tree")
if(page_tree != null) { scroll_top = page_tree.scrollTop }
})
addEventListener("turbo:render", function(){
let page_tree = document.querySelector("[data-turbo-permanent]#page-tree")
if(page_tree != null) { page_tree.scrollTop = scroll_top }
})
window.addEventListener('popstate', function(event){
if(event.state){
location.reload()
}
})
})()</script>
<script src="https://assets.bk-cdn01.com/assets/jweixin-6192301ba62ad963e1ee90ab87a9efa7ee3323c6dd920626b2e1ce36b2f2fb96.js" media="all"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/runtime~turbo-e7d155da79581033c55f.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/vendors~turbo-534c1cf831a2a1b0cc12.chunk.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/turbo-54e67608024fde800467.chunk.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/runtime~tenant/frontend_tailwind-ec14154691d00770587c.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/vendors~frontend~tenant/admin~tenant/frontend~tenant/frontend_tailwind~view_component_preview-ab628836c79beedcf7e3.chunk.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/vendors~admin~tenant/frontend_tailwind-3b47b26bbfc42f909a99.chunk.js" defer="defer"></script>
<script src="https://assets.bk-cdn01.com/assets/packs/js/tenant/frontend_tailwind-003f04d83f3244db5766.chunk.js" defer="defer"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?07fe69bbebcba3fcf52411b4d5132bde";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "gril2f0kzv");
</script>
</head>
<body>
<header>
<!-- Top Nav-->
<div class="w-full h-16 bg-white border-b" id="navigation">
<div class="h-full">
<div class="container flex flex-col h-full pt-3 mx-auto md:pt-4">
<div class="flex flex-row justify-between md:mt-0">
<a
href="https://www.hubstudio.cn/"
class="flex items-center text-gray-500 navbar-brand max-w-32"
data-turbo="false">
<img
src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/%E7%9F%A2%E9%87%8F%E6%99%BA%E8%83%BD%E5%AF%B9%E8%B1%A11637045920081.png"
alt="Hubstudio"
class="max-h-8">
</a>
<div class="flex items-center">
<!-- PC -->
<nav class="relative items-baseline hidden space-x-3 md:flex lg:space-x-5 xl:space-x-8" data-controller="navbar-search">
<a
href="https://support-orig.hubstudio.cn/"
target=""
class="flex-shrink-0 text-sm font-medium text-gray-900 hover:text-primary">
首页
</a>
<div
class="relative"
data-controller="dropdown"
data-dropdown-invisible-class="scale-95 opacity-0"
data-dropdown-visible-class="scale-100 opacity-100"
data-dropdown-entering-class="duration-300 ease-out"
data-dropdown-enter-timeout="300"
data-dropdown-leaving-class="duration-300 ease-in"
data-dropdown-leave-timeout="300">
<a
href="javascript:;"
data-action="mouseover->dropdown#show mouseover@window->dropdown#hide"
data-dropdown-target="button"
tabindex="0"
role="button"
class="inline-flex items-center flex-shrink-0 px-0 text-sm font-medium text-gray-800 transition duration-500 rounded-md hover:text-primary focus:outline-none focus:ring-0 focus:text-primary"
aria-expanded="false">
<span>产品</span>
<svg
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 ml-1"
viewBox="0 0 20 20"
fill="currentColor">
<path
fill-rule="evenodd"
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
clip-rule="evenodd" />
</svg>
</a>
<div
data-dropdown-target="menu"
data-action="mouseleave->dropdown#hide"
class="absolute z-10 hidden max-w-md min-w-full px-2 pt-3 -ml-4 transform w-max sm:px-0 lg:ml-0 lg:left-1/2 lg:-translate-x-1/2">
<div class="overflow-hidden rounded-lg shadow-lg ring-1 ring-black ring-opacity-5">
<div class="justify-center px-10 pt-4 pb-2 space-y-6 bg-white sm:flex sm:space-y-0 sm:space-x-10">
<ul>
<li class="mb-2">
<a
href="https://www.hubstudio.cn/"
target="_blank"
class="text-sm text-gray-600 hover:text-gray-900">
指纹浏览器
</a>
</li>
<li class="mb-2">
<a
href="https://www.hubstudio.cn/cm/"
target="_blank"
class="text-sm text-gray-600 hover:text-gray-900">
云手机
</a>
</li>
<li class="mb-2">
<a
href="https://www.hubstudio.cn/download/"
target="_blank"
class="text-sm text-gray-600 hover:text-gray-900">
下载
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<a
href="https://www.hubstudio.cn/pricing/"
target="_blank"
class="flex-shrink-0 text-sm font-medium text-gray-900 hover:text-primary">
价格
</a>
<div
class="relative"
data-controller="dropdown"
data-dropdown-invisible-class="scale-95 opacity-0"
data-dropdown-visible-class="scale-100 opacity-100"
data-dropdown-entering-class="duration-300 ease-out"
data-dropdown-enter-timeout="300"
data-dropdown-leaving-class="duration-300 ease-in"
data-dropdown-leave-timeout="300">
<a
href="javascript:;"
data-action="mouseover->dropdown#show mouseover@window->dropdown#hide"
data-dropdown-target="button"
tabindex="0"
role="button"
class="inline-flex items-center flex-shrink-0 px-0 text-sm font-medium text-gray-800 transition duration-500 rounded-md hover:text-primary focus:outline-none focus:ring-0 focus:text-primary"
aria-expanded="false">
<span>关于</span>
<svg
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 ml-1"
viewBox="0 0 20 20"
fill="currentColor">
<path
fill-rule="evenodd"
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
clip-rule="evenodd" />
</svg>
</a>
<div
data-dropdown-target="menu"
data-action="mouseleave->dropdown#hide"
class="absolute z-10 hidden max-w-md min-w-full px-2 pt-3 -ml-4 transform w-max sm:px-0 lg:ml-0 lg:left-1/2 lg:-translate-x-1/2">
<div class="overflow-hidden rounded-lg shadow-lg ring-1 ring-black ring-opacity-5">
<div class="justify-center px-10 pt-4 pb-2 space-y-6 bg-white sm:flex sm:space-y-0 sm:space-x-10">
<ul>
<li class="mb-2">
<a
href="https://www.hubstudio.cn/about-us/"
target="_blank"
class="text-sm text-gray-600 hover:text-gray-900">
关于我们
</a>
</li>
<li class="mb-2">
<a
href="https://www.hubstudio.cn/articles/type-0-page-1.html"
target="_blank"
class="text-sm text-gray-600 hover:text-gray-900">
新闻资讯
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<a
href="https://www.hubstudio.cn/s-promotion"
target="_blank"
class="flex-shrink-0 text-sm font-medium text-gray-900 hover:text-primary">
推广奖励
</a>
<a
href="https://www.hubstudio.cn/download"
target="_blank"
class="flex-shrink-0 text-sm font-medium text-gray-900 hover:text-primary">
免费下载
</a>
</nav>
<div data-controller="navbar-search" class="relative ml-3" data-navbar-search-open-value="false">
<form action="/search" class="absolute hidden bg-white rounded w-60 top-8 right-3 animate__faster" method="GET" data-navbar-search-target="form">
<div class="relative rounded-md shadow-sm">
<button type="submit" class="absolute inset-y-0 right-0 flex items-center pl-4 pr-3">
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
</svg>
</button>
<input type="text" name="keywords" placeholder="请输入关键词查找" aria-labelledby="搜索" value="" class="block w-full h-10 pl-3 pr-10 transition duration-300 ease-in-out bg-white border-gray-300 rounded shadow sm:text-sm focus:ring-0 focus:border-gray-300" data-navbar-search-target="input">
</div>
</form>
<a href="javascript:;" class="page--nav__search block hover:bg-gray-50 rounded" data-navbar-search-target="toggleBtn">
<span class="flex page--open_icon p-3" data-action="click->navbar-search#open click@window->navbar-search#hide keyup@window->navbar-search#hideWithKeyboard">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
</svg>
</span>
<span class="flex hidden page--hide_icon p-3" data-action="click->navbar-search#hide">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<main style="min-height: calc(100vh - 136px);">
<div>
<div class="container pb-8 mx-auto min-h-1/2" data-action="click->dropdown-search#hide">
<div class="w-full">
<nav aria-label="breadcrumb" class="block" data-turbo="false">
<ol class="flex flex-wrap p-0 mt-8 mb-4 bg-transparent breadcrumb">
<li class="breadcrumb-item"><a href="http://support-orig.hubstudio.cn">首页</a></li><li class="breadcrumb-item"><a href="http://support-orig.hubstudio.cn/373a">极速入门</a></li><li class="breadcrumb-item"><a href="http://support-orig.hubstudio.cn/373a/0bfa">文章</a></li>
</ol>
</nav>
</div>
<div class="flex w-full">
<div data-controller="sticky-sidebar" class="relative hidden md:block">
<div class="mr-0 w-72 sticky-block" data-sticky-sidebar-target="sidebar" data-sticky-sidebar-top-spacing="8" data-sticky-sidebar-bottom-spacing="8">
<div class="relative w-full pr-2 overflow-x-auto" id="page-tree" data-turbo-permanent style="overflow-y: auto; max-height: calc(100vh - 150px)" data-controller="scroll-to" data-scroll-to-active-item-value='li.active'>
<div data-controller="page-tree-tailwind" class="pt-8" data-page-tree-tailwind-breakPointWidth-value="768">
<ul class="page-tree" data-controller="content-loader" data-content-loader-url-value="/-/page-tree?root=true&amp;slug=373a%2F0bfa" data-content-loader-once-value="true" data-content-loader-lazy-loading-value="true"
data-action="content-loader:loading->scroll-to#success"
>
<div class="w-full max-w-sm p-4 mx-auto rounded-md">
<div class="flex space-x-4">
<div class="flex-1 py-1 space-y-6">
<div class="space-y-3">
<div class="grid grid-cols-4 gap-4">
<div class="h-2 col-span-1 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-200 via-gray-100 to-gray-50 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
<div class="space-y-3">
<div class="grid grid-cols-4 gap-4">
<div class="h-2 col-span-1 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-200 via-gray-100 to-gray-50 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
<div class="space-y-3">
<div class="grid grid-cols-4 gap-4">
<div class="h-2 col-span-1 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-200 via-gray-100 to-gray-50 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
<div class="space-y-3">
<div class="grid grid-cols-4 gap-4">
<div class="h-2 col-span-1 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-200 via-gray-100 to-gray-50 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
<div class="space-y-3">
<div class="grid grid-cols-4 gap-4">
<div class="h-2 col-span-1 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-200 via-gray-100 to-gray-50 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
<div class="h-2 col-span-3 rounded bg-gradient-to-r from-gray-50 via-gray-100 to-gray-200 bg-300-percent animate-gradient-bg"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
</div>
</div>
</div>
</ul>
</div>
</div>
</div>
</div>
<div class="flex-auto mt-0 ml-0 sm:ml-6">
<div class="grid grid-cols-5 gap-6">
<div class="col-span-5 sm:col-span-4" id="article_body">
<h1 class="mt-2 mb-5 text-3xl text-left">
开始使用Hubstudio
</h1><div data-controller="img-viewer article-anchor-link highlight" data-highlight-selector-value="code.editor_js--code" data-article-anchor-link-tips-value="点击复制段落" data-article-anchor-link-success-value="复制成功" data-turbo="false">
<div id="content" data-water-mark-target="article" data-prevent-copy-target="article" editorjs-pre-show=""><div class="editor_js--paragraph editor_js--paragraph__align-left">&nbsp; 视频教程可点击👉:<a href="https://www.bilibili.com/video/BV1MvWhe9Evi/">https://www.bilibili.com/video/BV1MvWhe9Evi/</a></div><div class="editor_js--embed"><iframe src="//player.bilibili.com/player.html?isOutside=true&amp;aid=112999062900460&amp;bvid=BV1MvWhe9Evi&amp;cid=500001656992362&amp;p=1" width="100%" height="600px" frameborder="0" allowfullscreen="allowfullscreen"></iframe><span></span></div><h2 class="editor_js--header">1.下载客户端</h2><div class="editor_js--paragraph editor_js--paragraph__align-left">1.1.下载客户端网址:<a href="https://www.hubstudio.cn/download/?done=1">https://www.hubstudio.cn/download/?done=1</a>,目前支持Windows</div><div class="editor_js--paragraph editor_js--paragraph__align-left">1.2.建议安装C盘以外的非系统盘且容量较大的盘符</div><div class="editor_js--paragraph editor_js--paragraph__align-left">1.3.适用于:Win7及以上版本, CPU 2核2GB,磁盘空闲不少于2GB。</div><div class="editor_js--paragraph editor_js--paragraph__align-left"></div><h2 class="editor_js--header">2.注册账号</h2><div class="editor_js--paragraph editor_js--paragraph__align-left">2.1.启动软件注册属于您的Hubstudio账号,请使用有效邮箱和电话号码注册,如已有账号可立即登录。</div><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/1693321473261/image.png" loading="lazy"></img></div><div class="editor_js--qiniu_image__caption"></div></div><div class="editor_js--paragraph editor_js--paragraph__align-left"></div><h2 class="editor_js--header">3.创建浏览器环境</h2><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>3.1.进入客户端,点击「新建环境」</b></div><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/e817fad6-86de-482a-9d6b-74112d1c883d/1741341116724/image.png" loading="lazy"></img></div><div class="editor_js--qiniu_image__caption"></div></div><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>3.2.设置环境基础信息</b></div><ul class="editor_js--list"><li>环境名称:必填,便于管理</li><li>浏览器:可选择ChroBrowser和FireBrowser</li><li>操作系统:可选择Windows,Android,iOS,macOS</li><li>User Agent:需要跟内核版本保持一致,默认是保持一致。</li><li>选择分组:选择已有分组或创建新的分组,便于管理</li></ul><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/e817fad6-86de-482a-9d6b-74112d1c883d/1741341219387/image.png" loading="lazy"></img></div><div class="editor_js--qiniu_image__caption"></div></div><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>3.3.设置代理</b></div><div class="editor_js--paragraph editor_js--paragraph__align-left">Hubstudio不提供代理,所有代理都需要您自己购买,代理详细信息请和代理服务商确认。</div><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>3.3.1.不使用代理:</b>使用当前电脑设备网络,配置界面选择<b>「不使用代理」</b></div><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/e817fad6-86de-482a-9d6b-74112d1c883d/1741342283141/image.png" loading="lazy"></img></div><div class="editor_js--qiniu_image__caption"></div></div><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>&nbsp; &nbsp; 3.3.2配置代理</b>:根据代理服务商提供的IP信息,选择代理类型,填写代理主机、端口、代理账号和密码进行配置,请参考”<a href="https://support.hubstudio.cn/4be5">代理网络配置</a>“</div><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/e817fad6-86de-482a-9d6b-74112d1c883d/1741343544896/image.png" loading="lazy"></img></div><div class="editor_js--qiniu_image__caption"></div></div><div class="editor_js--paragraph editor_js--paragraph__align-left"><b>3.4.添加账号</b></div><div class="editor_js--paragraph">3.4.1.选择要添加账号平台名称,如果没有可以选择自定义平台,可添加多个平台账号。</div><div class="editor_js--qiniu_image"><div class="editor_js--qiniu_image__picture"><img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/e817fad6-86de-482a-9d6b-74112d1c883d/1741344028320/image.png" lLine truncated
<div class="flex items-center mt-10 text-xs text-gray-400">
<svg xmlns="http://www.w3.org/2000/svg" class="inline w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
<div class="ml-1">2025-03-07 </div>
</div>
</div>
</div>
<div data-controller="sticky-sidebar article-content" class="hidden md:block sticky-sidebar-overflow">
<div data-sticky-sidebar-target="sidebar">
<div data-article-content-target="contentBody">
<h4 class="pt-3 pl-2">
本页目录
</h4>
<div>
<ul class="pt-2 text-xs text-gray-700 article__content_list" data-article-content-target="contentList">
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<div class="w-full bg-footer" id="footer_content" data-turbo-permanent style="margin-top: calc(45px + 2rem);">
<div class="container mx-auto">
<div class="pb-8 flex flex-col md:flex-row justify-between relative">
<div class="absolute w-full rounded bg-primary" style="height: 90px;top: -45px">
<div class="flex items-center justify-between h-full" style="padding: 30px">
<div class="flex items-center">
<img src="https://assets.bk-cdn01.com/templates/tailwords/1/assets/images/chat.png?_t=1727159778" style="width: 30px; height: 30px;" />
<h4 class="font-medium text-white" style="padding: 8px; font-size: 22px;">您可能需要客户帮助</h4>
</div>
<a href="https://support.hubstudio.cn/373a/dbb8" target="_blank" class="transition whitespace-nowrap min-w-fit bg-white rounded text-primary opacity-90 hover:opacity-100 hover:text-primary" style="padding: 12px 18px; font-size: 22px;">联系客服</a>
</div>
</div>
<div class="flex flex-col lg:flex-row lg:space-x-8 w-full" style="padding-top: calc(45px + 1rem);">
<div class="flex flex-col items-start footer__contact pt-4 min-w-max">
<div class="flex text-gray-200 items-top">
<pre class="text-sm whitespace-pre-wrap">13305912638 / 18059169535</pre>
</div>
<div class="flex flex-col my-3">
<div class="flex" data-controller="img-viewer">
<img src="https://saas.bk-cdn01.com/t/e6898aac-e5f8-4dec-8620-c3692d1b3cf1/u/13d8d3e5-d3d0-4b6d-bb06-7363f83a874c/1691049449196/%E5%B8%AE%E5%8A%A9%E4%B8%AD%E5%BF%83-%E8%81%94%E7%B3%BB.png" class="w-24 h-24 mr-3 rounded-md" />
</div>
<div class="text-sm text-gray-200 mt-1">扫码添加客服咨询</div>
</div>
</div>
<div class="min-w-min order-first lg:order-last flex-1 flex flex-col md:flex-row" data-controller="footer-nav-generator" data-footer-nav-generator-content-value="{
&quot;content&quot;: [
{
&quot;title&quot;: &quot;产品说明&quot;,
&quot;children&quot;: [
{
&quot;title&quot;: &quot;版本更新日志&quot;,
&quot;url&quot;: &quot;https://www.hubstudio.cn/version/&quot;
}
]
},
{
&quot;title&quot;: &quot;下载软件&quot;,
&quot;children&quot;: [
{
&quot;title&quot;: &quot;Windows &amp; Mac 版&quot;,
&quot;url&quot;: &quot;https://www.hubstudio.cn/download/&quot;
}
]
},
{
&quot;title&quot;: &quot;帮助中心&quot;,
&quot;children&quot;: [
{
&quot;title&quot;: &quot;常见问题&quot;,
&quot;url&quot;: &quot;https://support.hubstudio.cn/&quot;
},
{
&quot;title&quot;: &quot;网络介绍&quot;,
&quot;url&quot;: &quot;https://support.hubstudio.cn/4be5/cb73&quot;
}
]
},
{
&quot;title&quot;: &quot;法律与法规&quot;,
&quot;children&quot;: [
{
&quot;title&quot;: &quot;用户服务协议&quot;,
&quot;url&quot;: &quot;https://www.hubstudio.cn/protocol/user-service/&quot;
},
{
&quot;title&quot;: &quot;隐私协议&quot;,
&quot;url&quot;: &quot;https://www.hubstudio.cn/protocol/privacy/&quot;
}
]
}
]
}"></div>
</div>
</div>
<div class="pb-3 text-xs text-center text-gray-300">
© 2026 Hubstudio 版权所有
<a target="_blank" class="hover:text-gray-300" href="https://beian.miit.gov.cn/">闽ICP备2023015957号</a>
</div>
</div>
</div>
<footer>
<div class="container flex items-center justify-center">
</div>
</footer>
<div class="helpful-plugin" id='helpful-plugin-c547ee38-db45-4031-ab40-cc79699f96be'>
<span rel='helpfulRel' class = 'fixed fixed-bottom'>
<a class="d-flex justify-content-center align-items-center flex items-center justify-center" data-toggle="helpful-btn" data-remote="true" rel="nofollow" data-method="post" href="/-/feedback?cms_path=373a%2F0bfa&amp;helpful=y">
<i class='fa fa-thumbs-up fa-1x margin-top-negative'></i>
<span class='count small-count'>20</span>
</a>
<a class="d-flex justify-content-center align-items-center mt-3 flex items-center justify-center" data-toggle="unhelpful-btn" data-remote="true" rel="nofollow" data-method="post" href="/-/feedback?cms_path=373a%2F0bfa&amp;helpful=n">
<i class='fa fa-thumbs-down fa-1x margin-top-negative'></i>
<span class='count small-count'>20</span>
</a> </span>
</div>
</body>
</html>
File diff suppressed because it is too large. Load diff
+3920
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 100 of 3976 files, more files were not shown because too many files have changed in this diff. Show more