概述
网页镜像功能可以将在线网页完整保存到本地,包括 HTML、CSS、JavaScript、图片、字体等所有资源,并自动重写资源链接为相对路径,确保离线可访问。
特性
- 浏览器渲染:使用浏览器获取 JavaScript 动态生成的内容
- 并发下载:多线程下载资源,速度更快
- 隐身模式:自动使用完整浏览器请求头,避免被 CDN 拦截
- 自动预览:下载完成后自动在浏览器中预览
cfspider.mirror()
将网页完整保存到本地。
函数签名
python
cfspider.mirror(
url: str,
save_dir: str = "./mirror",
open_browser: bool = True,
cf_proxies: str = None,
vless_uuid: str = None,
**kwargs
) -> MirrorResult
参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
url |
str |
必填 | 要镜像的网页 URL |
save_dir |
str |
"./mirror" |
保存目录路径 |
open_browser |
bool |
True |
是否在下载完成后自动打开浏览器预览 |
cf_proxies |
str |
None |
代理地址,支持以下格式:
|
vless_uuid |
str |
None |
VLESS UUID(仅在使用 edgetunnel 域名时需要) |
**kwargs |
dict |
- | 传递给 Browser 的其他参数 |
返回值
MirrorResult
镜像结果对象,包含以下属性:
index_file(str):主 HTML 文件的完整路径assets_dir(str):资源目录的完整路径total_files(int):下载的文件总数(包含 index.html)total_size(int):所有文件的总大小(字节)failed_urls(List[str]):下载失败的 URL 列表success(bool):镜像是否成功
使用示例
基本用法
python
import cfspider
# 基本用法
result = cfspider.mirror("https://example.com")
print(result.index_file) # ./mirror/index.html
print(f"文件数: {result.total_files}")
print(f"大小: {result.total_size / 1024:.2f} KB")
指定保存目录
python
result = cfspider.mirror(
"https://example.com",
save_dir="./my_backup",
open_browser=False
)
使用 VLESS 代理
python
result = cfspider.mirror(
"https://example.com",
cf_proxies="vless://uuid@host:443?path=/"
)
目录结构
镜像后的目录结构如下:
text
save_dir/
├── index.html # 主页面
└── assets/
├── css/ # CSS 文件
├── js/ # JavaScript 文件
├── images/ # 图片文件
├── fonts/ # 字体文件
└── other/ # 其他资源
WebMirror 类
高级用法,可以更精细地控制镜像过程。
使用示例
python
import cfspider
mirror = cfspider.WebMirror(
url="https://example.com",
save_dir="./backup"
)
# 开始镜像
result = mirror.mirror()
# 检查结果
if result.success:
print(f"成功保存到: {result.index_file}")
else:
print(f"失败: {result.failed_urls}")