跳到主要内容

API查询利器Dash下载离线文档Docsets过慢的解决方法

· 阅读需 3 分钟

屏幕快照 2020-06-15 09.57.15.png

诚然,MacOS下的Dash是API查询利器,但有个很大的问题就是下载离线文档Docsets实在是太慢了,还动辄下载失败。为此,可以获取Docsets的下载地址,然后自行使用支持断点续传的多线程下载工具(如axel)下载,然后导入到Dash即可。

Dash在下载Docsets时,会先查询其下载地址。例如,对于Python 3,会请求 http://kapeli.com/feeds/Python_3.xml ,结果如下(为了排版,省略部分内容):

<entry>
<version>.8.3</version>
<ios_version>1</ios_version>
<url>http://sanfrancisco.kapeli.com/feeds/Python_3.tgz</url>
<url>http://london.kapeli.com/feeds/Python_3.tgz</url>
<url>http://newyork.kapeli.com/feeds/Python_3.tgz</url>
<url>http://tokyo.kapeli.com/feeds/Python_3.tgz</url>
<url>http://frankfurt.kapeli.com/feeds/Python_3.tgz</url>
<url>http://singapore.kapeli.com/feeds/Python_3.tgz</url>
<other-versions>
<version><name>3.8.3</name></version>
<version><name>3.8.2</name></version>
<version><name>3.8.1</name></version>
<version><name>3.8.0</name></version>
<!-- ... -->
</other-versions>
</entry>

可以看到上面有多个下载地址,如果想下载最新版Python 3的离线文档,直接使用上面的链接即可,tokyo和singapore的节点会快些。不过,像Python 3这样,还提供了一些历史版本的离线文档。例如,对于Python 3.6.8,其下载地址为:http://singapore.kapeli.com/feeds/zzz/versions/Python_3/3.6.8/Python_3.tgz 。同样,也可以选择其余的下载节点。

我是通过Charles抓包来获取这个地址的,关于Charles抓包,可以参考:Charles抓包App的HTTPS请求并解决SSL Pinning

屏幕快照 2020-06-07 22.24.40.png

总之,最新版Docsets的下载地址为:

http://sanfrancisco.kapeli.com/feeds/{DocsetName}.tgz
http://london.kapeli.com/feeds/{DocsetName}.tgz
http://newyork.kapeli.com/feeds/{DocsetName}.tgz
http://tokyo.kapeli.com/feeds/{DocsetName}.tgz
http://frankfurt.kapeli.com/feeds/{DocsetName}.tgz
http://singapore.kapeli.com/feeds/{DocsetName}.tgz

其中,{DocsetName}为文档名,并将空格替换为_。例如,对于Python 3就是Python_3。

历史版本Docsets的下载地址为:

http://sanfrancisco.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
http://london.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
http://newyork.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
http://tokyo.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
http://frankfurt.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
http://singapore.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz

其中,{version}为版本号。例如,对于Python 3.6.8就是3.6.8。

下载完成后,解压,得到.docset文件。然后在Dash的 Preferences...-Docsets(或者是Dash首页的Manage Docsets),点左下角的+号,然后选择 Add Local Docset,再选择.docset文件即可。

参考链接

更新Dash文档的小技巧 - 苏洋博客

DashforMac中的文档下载过慢的解决方法_checkerror2的博客-CSDN博客