- 背景
arXiv (https://arxiv.org/)是一个收集计算机科学、物理学、数学和生物学等多个学科的论文预印本网站,主站点在康奈尔大学,在全球多个地方设置有镜像网站。
国内由于某些限制导致直接访问速度很慢,一个 PDF 可能加载很久还是下不下来,参考资料 1详细地给出了用chrome 插件 tampermonkey(油猴插件)对网页中的arxiv 链接进行重定向到镜像网站的方法,其中油猴脚本可参考知乎上的回答2。
- 问题
- arXiv的中国镜像 http://cn.arxiv.org/ 经常无法访问,中科院理论物理所也有一个备选网址: http://xxx.itp.ac.cn/ ,但是也不是特别稳定。
- 而且这两个 arxiv 在中国区的镜像更新有延迟,对于最近提交的文章,可能更新不及时无法收录。
- 解决方法
通过比较 arXiv 的各国镜像发现,印度镜像 (http://in.arxiv.org/) 更加稳定,下载速度虽然慢于国内镜像但是明显快于官方站点,而且其更新比国内镜像更为及时,因此可以作为国内镜像无法访问或者更新不及时情况下的一个补充。
对参考资料2中的JavaScript脚本的镜像做修改即可:
// ==UserScript==
// @name redirect_arxiv
// @namespace redirect_arxiv
// @include *
// @include https://*github.io*
// @include https://*arxiv.org/*
// @include https://*google.c*
// @include https://*semanticscholar.org/*
// @include https://*github.com*
// @include https://*zhihu.com*
// @include https://*brainpp.cn*
// @include https://*outlook.cn*
// @version 1.0
// @grant none
// ==/UserScript==
// 重定向 arxiv.org 到 xxx.itp.ac.cn(中科院理论物理研究所镜像)
// 重定向 arxiv.org 到 cn.arxiv.org(中国镜像,404)
// 重定向 arxiv.org 到 in.arxiv.org(印度镜像)
function findFatherNode(node, nodeName='A', maxDeep=1000){
for (var i = 0; i < maxDeep; i++) {
if (! node){return node}
if (node.nodeName == nodeName){
return node
}else{
node = node.parentElement
}
};
}
document.body.addEventListener('mousedown', function(e){
var targ = e.target || e.srcElement;
var aTag = findFatherNode(targ, 'A', 10);
if (!aTag || !(aTag.href)){return};
var headN = 17;
var hrefHead = aTag.href.slice(0, headN);
var hrefTail = aTag.href.slice(headN);
if ( (hrefHead.indexOf('arxiv.org')==-1)){return};
if ( hrefHead.match(/https?:\/\/arxiv\.org/) ) {
hrefHead = hrefHead.replace(/https?:\/\/arxiv\.org/, 'http://xxx.itp.ac.cn');
// hrefHead = hrefHead.replace(/https?:\/\/arxiv\.org/, 'http://cn.arxiv.org');
// hrefHead = hrefHead.replace(/https?:\/\/arxiv\.org/, 'http://in.arxiv.org');
}
aTag.href = hrefHead + hrefTail
// console.log(targ, targ.href);
});