扔掉“百度”,教你在 RunKit 上 5 行代码免费创建自己的 google 镜像站

2019-01-23 13:10:33 +08:00
 imwalson

百度已死

22 日晚,自媒体新闻实验室一篇名为《搜索引擎百度已死:沦为替百家号导流的工具》的文章刷屏。文章指责百度搜索结果一半以上会指向百度自家产品,尤其是百家号,而百家号充斥着大量营销和质量低劣的内容,也导致百度搜索结果的内容质量大幅下滑。

这些年百度做过的恶,两只手都数不过来了,大家心里都有数。笔者也发现身边不少人“抵制百度”,却不得不用百度,原因是“用国内其他搜索引擎,体验比百度更差,爱国上网又不会,再加上买 VPN 或者自建 SS 服务也是一笔成本”。

此教程适合哪些人?

痛恨百度搜索,想日常使用谷歌搜索引擎作为替代,但是苦于没有爱国上网的技术或者成本的所有人。

介绍 Runkit

runkit.com 是一家什么网站?

某个偶然的机会发现了 runkit.com 这个网站,官网的介绍是 "Runkit is a node playground in your broser",顾名思义就是允许你在浏览器中运行 node.js 的代码。你可以随意引用成千上万的 npm 模块并运行,立刻就能看到运行结果,在日常的 node.js 开发中非常实用,笔者经常用他家提供的服务来写一些测试代码,提高开发效率、节省了很多时间。具体的介绍大家可以去官网看,首页展示的两个视频能一目了然的看出来 Runkit 能干什么。

ps: 由于使用了谷歌字体,在国内打开 Runkit 网站可能很慢,建议翻墙访问,之后访问创建完的谷歌镜像服务 url 地址就不需要翻墙了。

RunKit Endpoint

除了上面介绍的“在线运行 node.js 代码”,RunKit 还提供了 Endpoint 服务。官网的说明是 "Endpoint is a fast and simple way to write code with Node.js that can respond to HTTP requests from anywhere. There's no need to manage servers or deployments, instead just write code in RunKit. Getting started is as easy as implementing one function."。简单来说 Runkit 允许用户通过 exports endpoint 函数,来获得一个 url 地址,实现一个小型的 HTTP Server,很像如今很火的 FaaS “函数即服务”,具体可看 官方文档。值得一提的是,除了默认的 endpoint 函数写法外,直接运行一个 express app 并且绑定在 3000 端口,同样也能实现相同的效果。Runkit 目前完全免费( Endpoint 服务存在一些资源调用限制,具体限制如何不清楚,但是个人使用完全足够了),目前 Runkit 已经被 Stripe 收购,相信他家的服务还是有保障的。

借助 express.js 和 http-proxy-middleware 插件实现代理访问 google

有了以上基础,想要创建自己的 google 镜像就非常简单了。

1、免费注册账号,也可以使用 github 账号登录

ps: 由于使用了谷歌字体,在国内打开 Runkit 网站可能很慢,建议翻墙访问,之后访问创建完的谷歌镜像服务 url 地址就不需要翻墙了。

2、在个人中心创建一个工程

3、拷贝如下代码并运行

Title 标题随便写

拷贝下面的代码到正文里,然后点 run 运行:

var express = require('express');
var proxy = require('http-proxy-middleware');
var app = express();
app.use('/', proxy({target: 'https://www.google.com/', changeOrigin: true}));
app.listen(3000);

4、点击“ endpoint ”按钮

大功告成,点击“ endpoint ”后会跳转到一个 url 地址,不出意外这时候你应该已经能看到大大的“ Google ” logo 了(如之前开着 VPN,可以关闭 Vpn 后再打开这个地址试试),保存下这个地址,这就是你自己的私人 Google 镜像站了。

这是我自己刚创建的镜像站链接:Google

ps:

1、此 Google 镜像站仅供测试,随时会删除,请自行按照以上步骤创建自己的镜像站;

2、请勿滥用 Runkit 服务创建大量垃圾镜像站;请勿用于创建公开的网站服务(自己用就行,打算在上面建网站给他人使用还是算了),毕竟有请求数限制、且稳定性不足以胜任公开的网站要求。

后话

祝愿百度早点倒闭。

4483 次点击
所在节点    分享发现
61 条回复
imwalson
2019-01-23 14:48:08 +08:00
@loli 目前没有太好的绕过的办法,你可以参考这篇文章: https://blog.zengrong.net/post/2366.html
shyrock
2019-01-23 14:48:18 +08:00
超赞!!感谢了。
realkenshinji
2019-01-23 14:51:19 +08:00
可以的,我不用 google 也可以用 bing 或者 yandex 啊
Jzer0n
2019-01-23 15:04:23 +08:00
如果能正常使用 Google,可能就没百度什么事情了。
imwalson
2019-01-23 15:13:18 +08:00
@realkenshinji 对,bing 也推荐使用,不用百度也有很多替代方案,只不过很多人都只知道国内的几家搜索引擎
aiwoshishen
2019-01-23 15:13:36 +08:00
这样 google 搜索出来的二级页面也打不开吧?
imwalson
2019-01-23 15:20:42 +08:00
@aiwoshishen 这取决于结果网站本身是否被墙了,如果被墙了当然是打不开的
zyu0090
2019-01-23 15:26:26 +08:00
@imwalson 做浏览器默认是不是只用加上 search?q=%s,chrome 生成的那个有好多后缀啊。。。
demo
2019-01-23 15:31:59 +08:00
花里胡哨,不用注册的。https://runkit.com/e
imwalson
2019-01-23 15:32:08 +08:00
@zyu0090 是的,比如(请自行替换域名): https://untitled-0l721vzkykus.runkit.sh/search?q=%s
zyu0090
2019-01-23 15:33:47 +08:00
@imwalson 嗯,感觉 chrome 生成那个带后缀的要快一点。。不知道是不是错觉
imwalson
2019-01-23 15:34:54 +08:00
@demo 不注册在这里可以运行代码,可是没有 endpoint 功能啊
demo
2019-01-23 15:35:34 +08:00
抱歉,少打了个参数。 https://runkit.com/e?mode=endpoint
lingo
2019-01-23 15:39:00 +08:00
老老实实叠飞机还比较实在点。
jakes
2019-01-23 15:48:24 +08:00
有没有办法绑定自己的域名?
night98
2019-01-23 16:01:31 +08:00
请求数限制是多少?
imwalson
2019-01-23 16:08:43 +08:00
@demo 厉害,确实可行,不知道这样创建的服务能不能长久存在。不过就算不能持久化,也提供了个思路,随时想用随时创建
imwalson
2019-01-23 16:10:00 +08:00
@jakes 官方不支持绑定自定义域名,除非自己有服务器再进行一次 nginx 反代,那就不值得了
imwalson
2019-01-23 16:13:04 +08:00
@night98 官方没有任何这方面的说明,我猜一小时起码上千次没问题,我本人正常使用是够的
night98
2019-01-23 16:14:36 +08:00
@imwalson #39 可以的,感谢提供,日常用比开双 s 方便很多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/529777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX