为什么我imgur的图片加载不出来?
简单来说就是黑IP了,因为imgur在大陆是无法访问的,我们需要使用科学的方法来访问,这时候你节点的IP可能就在imgur的黑名单里面,导致没办法加载,具体表现为访问i.imgur.com
(图片直链)返回429
,访问imgur.com
会返回
{
"data": {
"error": "Imgur is temporarily over capacity. Please try again later."
},
"success": false,
"status": 403
}
那怎么办呢?
其实最简单的方法就是换一个节点。
但是,我发现,换了一圈我现有的(包括self-hosted)都不能正常访问!!!
有网友说,很多数据中心的IP进了imgur的黑名单了,恰巧这时我也不想再找了,于是就想着自己折腾折腾,想一个方法。
灵感 1
很多网站在大陆访问比较慢,或者是被屏蔽了,这时候有一些人会做一些公益的镜像站,比如Hugging Face的镜像站HF-Mirror。
于是我就想,有没有一个imgur的镜像站呢?
答:没找到。
但是,有一些提供图片镜像缓存服务的网站,他们能够缓存图床的直链,并转发给用户。具体的可以参考这篇。
这里以https://img.noobzone.ru/getimg.php?url=
为例,把要访问的imgur图片链接直接加在网址后面(作为参数传入)即可访问,且不需要科学的方法。
例如:https://img.noobzone.ru/getimg.php?url=https://i.imgur.com/TbWS0cZ.png
灵感 2
本来想写个油猴脚本来实现的,但是感觉大材小用了,切比较麻烦,不够通用(其实是懒得写了)。
我想到了Header Editor (google.com),这个浏览器插件可以重定向所有满足某种条件的请求。
于是写一个正则匹配i.imgur.com
为域名的URL,重定向至https://img.noobzone.ru/getimg.php?url=
即可。
安装插件后,选择导入,这里可以参考我写的,从
https://gist.github.com/shiquda/e5af95cb0476d72e6287b45ec591c42c/raw/d45f5713b044d857e5a3d316248ffa8238142b90/gistfile1.txt
导入。
或者直接复制这里的文本为配置文件:
{
"request": [
{
"enable": true,
"name": "imgur",
"ruleType": "redirect",
"matchType": "regexp",
"pattern": "^(http(s)?://i.imgur.com/)",
"exclude": "",
"group": "imgur",
"isFunction": false,
"action": "redirect",
"to": "https://img.noobzone.ru/getimg.php?url=$1"
}
],
"sendHeader": [],
"receiveHeader": [],
"receiveBody": []
}
导入后开启规则应该就能生效了。
局限
这里只支持在浏览器中访问,如果需要在其他软件中访问,可能需要一些其他分流软件,这里不再探讨。感兴趣的读者可以自行探索实现。
参考
- 图片防盗链最终解决方案,超级简单实用的方法 | 爱淘数字资源馆 (1itao.com)
- imgur办掉了所有的乌龟壳ip访问图片-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz! (hostloc.com)
标题:解决imgur图片无法加载的问题
作者:shiquda
地址:https://shiquda.link/load-imgur-images
除非特别说明,本博客上的所有内容均在CC BY-SA 4.0许可下提供。 如需转载请注明作者与来源,谢谢!