如何在Sphinx linkcheck中用nitpick_ignore_regex解决403错误?
Sphinx
make linkcheck 遇到Intel链接持续返回403错误的问题 问题现象
使用Sphinx的make linkcheck工具检查文档链接时,两个Intel链接始终返回403错误,错误日志如下:
(CustomizingTheWorkflow/ConfigWorkflow: line 1109) broken https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-10/thread-affinity-interface.html - 403 Client Error: Forbidden for url: https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-10/thread-affinity-interface.html (BuildingRunningTesting/ContainerQuickstart: line 26) broken https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html - 403 Client Error: Forbidden for url: https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
但这两个链接在浏览器中可正常打开,终端执行curl -I <链接地址>也返回200状态码。
已尝试的无效操作
- 配置
conf.py中的nitpick_ignore_regex忽略这两个链接,无论是直接写正则字符串,还是按照Sphinx文档要求的(type, target)元组格式(尝试过r'.*:.*'匹配类型),都无法消除错误提示:
nitpick_ignore_regex = [r'https://www\.intel\.com/content/www/us/en/docs/cpp\-compiler/developer\-guide\-reference/2021\-10/thread\-affinity\-interface\.html', r'https://www\.intel\.com/content/www/us/en/developer/tools/oneapi/hpc\-toolkit\-download\.html', ]
- 怀疑是User-Agent问题,先后尝试多个浏览器标识的
user_agent配置,均无效:
user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36" user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"
需求
求可行的解决方案,同时希望了解:
- 除了试错,有没有更优的方法排查合适的User-Agent字符串?
- 如何确定
nitpick_ignore_regex元组格式中需要匹配的type或域?
内容的提问来源于stack exchange,提问作者kb1kgp
相关产品推荐
相关产品推荐

