网站预缓存脚本,全量拉取sitemap里面的网址来实现预缓存,支持使用CDN或本地有静态缓存的网站。

# 不依赖本地环境docker run --rm --net=host -ti jagerzhang/pre-cache:latest \ --sitemap=https://zhang.ge/sitemap.xml \ --cacheheader=cf-cache-status
git clone https://github.com/jagerzhang/Pre-cache.gitcd Pre-cacheyum install -y python-pippip install --upgrade pip -i https://mirrors.tencent.com/pypi/simple/pip install -r requirements.txt -i https://mirrors.tencent.com/pypi/simple/
python pre_cache.py --helpusage: pre_cache.py [-h] -s SITEMAP [-S SIZE] [-t TIMEOUT] [-H HOST] [-c CACHEHEADER] [-U USERAGENT] [-v VERIFY]网站预缓存脚本,支持使用CDN或本地有静态缓存的网站.optional arguments: -h, --help show this help message and exit -s SITEMAP, --sitemap SITEMAP 网站地图sitemap地址 -S SIZE, --size SIZE 并发请求数量,默认20 -t TIMEOUT, --timeout TIMEOUT 单个请求的超时时间,默认10s -H HOST, --host HOST 指定真实主机,比如 127.0.0.1:8080 -c CACHEHEADER, --cacheheader CACHEHEADER 缓存标识,比如: x-cache -U USERAGENT, --useragent USERAGENT 指定UA标识,默认 Pre-cache/python- requests/__version__ -v VERIFY, --verify VERIFY 是否校验SSL,默认不校验 -d, --debug 显示Debug信息, 默认关闭
python pre_cache.py \ --sitemap=https://zhang.ge/sitemap.xml \ --cacheheader=cf-cache-status
# 可以指定IP+Host域名可以绕过CDN,直接请求源站,实现源站本地缓存python pre_cache.py \ --sitemap=https://zhang.ge/sitemap.xml \ --host=127.0.0.1:8443 \ --cacheheader=x-cache-redis
# 可以指定UA标识,伪装浏览器或其他客户端请求,避免被CDN拦截python pre_cache.py \ --sitemap=https://zhang.ge/sitemap.xml \ --cacheheader=cf-cache-status \ --useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
from pre_cache import PreCachepre = PreCache(sitemap="https://zhang.ge/sitemap.xml", host=None, size=10, timeout=10, cache_header="cf-cache-status", user_agent="Pre-cache/python-requests/2.22.0", verify=False)pre.start()