
:
sitediff help diff
入门使用
创建配置:为网站创建配置
sitediff init http://mysite.example.com
默认生成名为 sitediff.yaml 的配置文件。
爬取网站:让 SiteDiff 爬取网站以发现页面
sitediff crawl
爬取结果将保存到 paths.txt 文件。
比较差异:在网站更改后检查变化
sitediff diff
查看HTML报告:启动内部Web服务器查看报告
sitediff serve
更新缓存:满意网站状态后更新缓存版本
sitediff store
比较两个网站
对比生产环境与开发环境网站:
sitediff init http://mysite.example.com http://localhost/mysite
若两个网站都可能变化,禁用缓存:
sitediff diff --cached=none
指定配置目录
默认 SiteDiff 将所有文件放在 sitediff 文件夹,可使用 --directory 标志指定其他目录:
bashsitediff init -C my_project_folder https://example.com sitediff diff -C my_project_folder sitediff serve -C my_project_folder
指定页面路径
运行 sitediff diff 时,可通过以下方式指定要检查的页面:
使用 --paths 选项:
bashsitediff diff --paths /home /about /contact
使用 --paths-file 选项指定路径文件:
bashsitediff diff --paths-file sitediff/failures.txt
调试规则
调试清理规则时,使用 --cached=all 选项避免重新获取内容,加快比较速度:
bashsitediff diff --cached=all
包含与排除URL
使用正则表达式包含或排除特定路径:
bash# 排除PDF文件 sitediff crawl --exclude='.*\.pdf'
导出报告
生成包含HTML报告的压缩tar文件:
bashsitediff diff --export sitediff diff -e
容器内运行
在容器或虚拟机内运行时,可使用 --before-url-report 和 --after-url-report 选项调整报告中的URL:
bashsitediff diff --after-url-report=http://vagrant:8080
SiteDiff 依赖 YAML 配置文件(通常为 sitediff.yaml),可通过 sitediff init 生成基础配置,然后手动修改。
before_url / after_url
指定要比较的两个网站URL,也可以是本地文件系统路径:
yamlbefore_url: http://example.com/subsite after_url: http://localhost:8080/subsite
selector
指定要比较的HTML部分,而非整个页面:
yamlselector: '#breadcrumb' # 仅比较ID为breadcrumb的元素
sanitization
用于规范化HTML的正则表达式规则列表:
yamlsanitization: # 移除Drupal表单构建ID - pattern: '<input type="hidden" name="form_build_id" value="form-[a-zA-Z0-9_-]+" *\/?>' selector: 'input' substitute: '<input type="hidden" name="form_build_id" value="__form_build_id__">'
ignore_whitespace
比较时忽略空白字符:
yamlignore_whitespace: true
命令行选项:-w 或 --ignore-whitespace
before / after
为比较的某一侧应用特定规则:
yamlbefore: sanitization: - pattern: '[1-2][0-9]{3}/[0-1][0-9]/[0-9]{2}' substitute: '__date__' after: sanitization: - pattern: '[A-Z][a-z]{2} [0-9]{1,2}(st|nd|rd|th) [1-2][0-9]{3}' substitute: '__date__'
includes
包含其他配置文件:
yamlincludes: - config/sanitize_domains.yaml - config/strip_css_js.yaml
dom_transform
对HTML结构应用转换的规则列表,支持以下类型:
remove:移除匹配选择器的元素
yamldom_transform: - type: remove selector: div#block-time # 移除时间块
strip:去除标签内容的前后空白
yamldom_transform: - type: strip selector: h1 # 去除h1标签内容的前后空白
unwrap:用子元素替换匹配的元素
yamldom_transform: - type: unwrap selector: article # 移除article标签,保留其内容
remove_class:从元素中移除指定类
yamldom_transform: - type: remove_class selector: div class: class-foo # 移除div元素的class-foo类
unwrap_root:用子元素替换整个根元素
report
配置报告显示信息:
yamlreport: title: "example.com更新报告" details: "本报告验证example.com的更新情况。" before_note: "旧网站" after_note: "新网站" before_url_report: http://example.com after_url_report: http://staging.example.com
命名区域(Named regions)
定义页面标记中的区域及比较顺序,适用于标记结构变化较大的场景:
yamlregions: - name: title selector: h1.title - name: author selector: .field-name-attribution - name: body selector: .field-name-body output: - title - author - body
Curl选项
配置底层curl库的选项:
yamlsettings: curl_opts: max_recv_speed_large: 10000 # 限制接收速度 ssl_verifypeer: false # 忽略SSL证书验证 timeout: 60 # 超时时间(秒) concurrency: 3 # 最大并发连接数 interval: 1000 # 请求间隔(毫秒) depth: 3 # 爬取深度
bash# 初始化配置 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff init http://old.example.com http://new.example.com # 爬取网站路径 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff crawl # 生成差异报告 docker run -v $(pwd)/sitediff:/app/sitediff sitediff/sitediff diff # 启动报告服务器(访问http://localhost:13080查看报告) docker run -v $(pwd)/sitediff:/app/sitediff -p 13080:13080 sitediff/sitediff serve
yamlversion: '3' services: sitediff: image: sitediff/sitediff volumes: - ./sitediff:/app/sitediff # 挂载配置和数据目录 ports: - "13080:13080" # 映射报告服务器端口 command: serve # 启动报告服务器
yamlsanitization: - name: remove_empty_p pattern: '<p/>' substitute: '' # 移除空的<p/>标签
yamlsanitization: - name: remove_space_before pattern: '\s*(\n)<' substitute: '\1<' # 移除标签前的空格 - name: remove_space_after pattern: '>(\n)\s*' substitute: '>\1' # 移除标签后的空格
yamlsanitization: - name: remove_empty_class pattern: ' class=""' substitute: '' # 移除空的class属性
将大型配置文件拆分为多个文件:
yamlincludes: - generic_rules.yaml # 通用规则 - update_specific_rules.yaml # 特定更新规则
#是注释符号您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务