Files
hometown/docs/720yun_资源与鉴权说明.md
2026-03-07 23:35:08 +08:00

50 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 720yun 原项目资源与鉴权说明
基于对 `text.md`720yun 页面保存的 HTML/脚本)的检查,说明**是否有加密措施**、**为什么脚本读取与浏览器不一致**,以及**底面图的实际地址**。
---
## 一、原项目是否有加密/鉴权措施?
文档中**没有**对图片内容做加密(如 AES、自定义编解码。资源 URL 为明文路径,不携带 token 或签名。
但存在以下**访问控制**,会影响脚本直接拉取或离线使用:
| 措施 | 说明 |
|------|------|
| **Referer 校验** | 页面含 `<meta name="referrer" content="always">`请求会带来源页。CDN如 resource-t.720static.com很可能只允许来自 `*.720yun.com` 的 Referer否则关闭连接或返回异常。用 Python/脚本直接请求时未带该 Referer易出现连接被关如 EOF。 |
| **场景 JSON 不直出** | 场景配置在 `window.json="json/4ca3fae5e7x/.../3.json"`,由前端在浏览器里请求。该接口可能校验 Cookie/Origin/Referer脚本直接 GET 常返回 403/404 或空,无法拿到完整 cube 路径列表。 |
| **过期与权限字段** | `window.data` 中有 `"expired":1``"urlExpiredDate":null``"privilege":1`。若服务端按 `expired``urlExpiredDate` 做时效控制,过期后可能拒绝部分接口或资源。 |
**结论**:没有对图片做“加密”,但有 **Referer/来源校验** 和可能的 **时效/权限** 控制,所以用脚本从站外直接拉取会失败或拿不全;在浏览器里从 720yun 页面打开时,由同源请求带正确 Referer才能正常加载。
### 为什么 Chrome 能访问、脚本“读取”就不正确?
- 浏览器请求 720 的 CDN 时会自动带上 **Referer: https://www.720yun.com/**(以及完整 User-Agent。CDN 只认这类请求,返回 200 和正确图片。
- 脚本若用默认 `urllib` 或只带简单 User-Agent、**不带 Referer**CDN 会拒绝或关闭连接你看到的就是“读取不正确”、EOF、403 等。
- **解决办法**:脚本里请求 720static.com 的 URL 时,必须加上与浏览器一致的请求头,例如:
- `Referer: https://www.720yun.com/`
- `User-Agent: Mozilla/5.0 (Macintosh; ...) Chrome/120.0.0.0 Safari/537.36`
- 本仓库已在 `scripts/fetch_720yun.py``download_file``scripts/parse_720yun_doc.py` 的下载逻辑里使用上述头,用 `--download` 拉取时与浏览器行为一致。
---
## 二、底面图mobile_d的实际地址与 CDN 域名
原项目**有底图**,地址为(与浏览器一致):
- **底面**`https://ssl-panoimg130.720static.com/resource/prod/4ca3fae5e7x/d22jkguytw6/59446768/imgs/mobile_d.jpg`
之前解析脚本里用的资源域是 **resource-t.720static.com**,而真实全景图 CDN 是 **ssl-panoimg130.720static.com**。用错域名时,脚本请求会失败或拿不到正确数据;在浏览器里因为页面请求的是正确域名,所以“在浏览器里是正确的数据”。
- 解析脚本已改为使用 **ssl-panoimg130.720static.com** 作为资源 base生成的 6 面 + 缩略图 URL 与浏览器一致。
- 下载时需同时带 **Referer: https://www.720yun.com/** 和浏览器 User-Agent见上一节否则 CDN 仍可能拒绝,导致“读取”与浏览器不一致。
---
## 三、在本项目里怎么用(含底面)
- 解析出的 6 面 URL 已使用正确 CDNssl-panoimg130.720static.com且含底面 mobile_d.jpg。
- 在项目根目录执行 **`python3 scripts/parse_720yun_doc.py --download`**,会用与浏览器一致的 Referer/User-Agent 把 6 面 + 缩略图下载到 `image/`,再在页面上选「选择六面体(6张)」按顺序选 image 下 6 张即可。
- 若仍只有 5 张(没有 d可用一张纯黑或占位图作为第 6 张,或在 config 的 cubemap 里第 6 个用占位图路径。