V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HentaiMew
V2EX  ›  Node.js

发一个自己的作品 - globr 搜索 [java&nodejs]

  •  2
     
  •   HentaiMew · 2015-08-23 13:36:53 +08:00 · 6321 次点击
    这是一个创建于 3407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    globr 的主旨是让国内用户可以纯净、快速、有效的获取 google 搜索数据。

    globr 分为 globr-api 和 globr-clt , clt 也就是 client , api 是一个 java 实现的 RestFul WebService 。

    目前 clt 端只实现了一个 nodejs 的版本,项目名为 : "globr-nodejs-clt",这个项目是昨天突然的想法开始的,由于很紧凑,代码写得不是很规范,页面也是比较随意 没有注重细节。所以暂时就不公布 git 仓库地址了(怕丢人,确实写得很渣)。

    现在 api 端运行在一台日本的主机上, nodejs 的 clt 端运行在 BAE 上。大家可以玩玩。

    地址是 : http://globrv.duapp.com

    .... 低调点 我在 BAE 上还有备案在审核呢。。。。

    这个项目仅供个人学习和娱乐,仅仅提供了谷歌的结果 但是不提供结果的任何形式的代理获取,例如你搜索到了一个 youtube 的条目,你点击进去,如果你无法访问 youtube ,那么仍然无法访问的。

    结果页面条目是真实链接 target = _blank 跳转,没有谷歌重定向!

    第 1 条附言  ·  2015-08-25 21:56:19 +08:00
    大家好, globr-api 公开了,地址是:

    http://globr-api.bluerain.io

    展开搜索 API 可以在线 try.支持 CORS 跨域。
    第 2 条附言  ·  2015-08-27 12:54:32 +08:00
    紧急通知:
    我在 BAE 上的 clt 端应用 http://globrv.duapp.com 被百度封禁了。
    算是作了个小死 [其实我真的只是业余学习和娱乐。 玩玩而已]
    大家以后不要像我这样作死就对了,自己用用就好。还是不要公开了。
    71 条回复    2015-08-29 09:58:44 +08:00
    HentaiMew
        1
    HentaiMew  
    OP
       2015-08-23 13:40:34 +08:00
    对了,谷歌的结果页面,有些关键字会涉及到图片,"image for google"的条目。由于图片地址国内是无法直接访问到的,没有代理的朋友页面上该条目将都是坏图片,所以我干脆把图片结果给去掉了。
    sparkrat
        2
    sparkrat  
       2015-08-23 14:06:55 +08:00
    赞一个,,虽然我有梯子.....这想法很新颖,不过似乎不能从根本上解决问题呢?
    楼主加油.最后还是弱弱的说一句, 搭梯子大法好.
    HentaiMew
        3
    HentaiMew  
    OP
       2015-08-23 14:16:36 +08:00
    @sparkrat 梯子或者其他代理方式真的好?

    代理网络或者反代谷歌都是让用户直接访问海外服务器,很多地区网络封锁或者出口原因,丢包很高,速度很慢。而且相对的服务器的压力和流量输出都会比较高。


    而这个的区别就是,你是直接访问的运行在 BAE 上的应用,百度服务器。无论哪里速度基本都非常快。


    连接海外服务器的只有一个点,那就是百度的服务器,并不会分散到各个地区的用户网络上。


    海外服务器的数据获取封装成了 RestFul API ,每个请求传输数据不过几 KB 级别的,再加上一般 IDCj 机房网络对海外访问都比较友好(所以有些飞机提供商还用国内服务器做流量中转),所以让百度的服务器去访问海外主机,我觉得是很明智的。(虽然只是玩玩.... )

    当然梯子还是必备的.... 不然搜索出来的很多国外结果没什么用,访问依然卡死你。用谷歌不就主要是搜索老外的资料么。哈哈
    feijilei
        4
    feijilei  
       2015-08-23 14:20:06 +08:00   ❤️ 1
    www.gugesou.com 一直都用这个
    HentaiMew
        5
    HentaiMew  
    OP
       2015-08-23 14:24:28 +08:00
    楼上就是一个谷歌的反代←_←
    oott123
        6
    oott123  
       2015-08-23 14:38:10 +08:00 via Android
    用 Google 的一大好处就是它可以根据你的历史点击和搜索记录提供个性化的结果。
    HentaiMew
        7
    HentaiMew  
    OP
       2015-08-23 14:41:27 +08:00
    @oott123 我不知道能不能个性化结果。。。但是个性化广告是千真万确的.....
    breeswish
        8
    breeswish  
       2015-08-23 15:16:56 +08:00
    @oott123 必应做得更绝..会根据上几次搜索进行关联搜索..
    zonghua
        9
    zonghua  
       2015-08-23 15:48:51 +08:00
    是构造模拟登陆吗?然后解析的数据返回来?
    flowfire
        10
    flowfire  
       2015-08-23 16:12:52 +08:00 via iPhone
    用的 Google search api ?
    我用谷歌还有一个很重要的一点是因为他比百度好看。。。。
    HentaiMew
        11
    HentaiMew  
    OP
       2015-08-23 17:00:39 +08:00
    @flowfire 并不是 api , api 有此数限制,我是抓取的搜索结果,解析 dom ,封装成 JavaBean 做成自己的 api 然后给 clt 端的 nodejs 使用
    flowfire
        12
    flowfire  
       2015-08-23 18:08:14 +08:00
    @HentaiMew 其实就是反代吧。。。
    Kokororin
        13
    Kokororin  
       2015-08-23 18:12:03 +08:00
    之前也写过一个和楼主类似的。。
    地址: https://niconiconi.science/
    HentaiMew
        14
    HentaiMew  
    OP
       2015-08-23 18:40:42 +08:00
    @Kokororin 然而并不能访问.... 你是用的海外主机吧。
    Kokororin
        15
    Kokororin  
       2015-08-23 18:45:57 +08:00
    @HentaiMew 是的……放在 linode 上
    HentaiMew
        16
    HentaiMew  
    OP
       2015-08-23 18:48:37 +08:00
    @Kokororin 然而上海用户表示 linode 已死,直接性的 ping 不通。所以我才要暴露成 api 让百度的服务器去访问。这样就不会因为用户网络原因造成访问问题了
    Kokororin
        17
    Kokororin  
       2015-08-23 18:54:00 +08:00
    @HentaiMew 然而上海电信非 CN2 用户表示无压力……我是用 php 直接获取的,比较 low
    magicdawn
        18
    magicdawn  
       2015-08-23 18:56:44 +08:00
    http://google.magicdawn.ml/

    就是搜索, 然后在 heroku 上买, 一段时间没人访问就休眠了
    HentaiMew
        19
    HentaiMew  
    OP
       2015-08-23 19:07:50 +08:00
    @magicdawn 这个 heroku 看起来不错 有免费的而且还是 521m 内存 不过居然 24 小时以内必须休眠 1/4 的时间。。。 持续超过 18 小时未休眠 会怎样?暂时无法访问吗?
    orangleliu
        20
    orangleliu  
       2015-08-23 19:08:08 +08:00
    搜中文都是日语的 。。
    HentaiMew
        21
    HentaiMew  
    OP
       2015-08-23 19:14:37 +08:00
    @orangleliu 啊 其实我也注意到了 , 谷歌根据 ip 选择了结果语言,其实我是用 hl=en 当作语言参数的,应该是更偏向英文结果。但是谷歌没理会那个参数。有时间再研究研究,可能在请求里面加个语言 header 更好吧
    googlefans
        22
    googlefans  
       2015-08-23 19:44:10 +08:00
    这个有什么用呢?
    welly
        23
    welly  
       2015-08-23 20:13:40 +08:00 via iPhone
    这个挺好!楼主加油。
    xiao201261
        24
    xiao201261  
       2015-08-23 20:15:56 +08:00
    wen.lu 大法好
    magicdawn
        25
    magicdawn  
       2015-08-23 20:59:24 +08:00
    @HentaiMew

    不知道, 貌似再访问是被唤醒吧~
    magicdawn
        26
    magicdawn  
       2015-08-23 21:00:58 +08:00
    API 我可以用么
    gezehua
        27
    gezehua  
       2015-08-23 21:17:14 +08:00
    Imivan
        28
    Imivan  
       2015-08-23 21:17:35 +08:00
    为毛不设反代,这样感觉多余啊。
    shoumu
        29
    shoumu  
       2015-08-23 22:23:12 +08:00
    @magicdawn 你可以爬取楼主的搜索结果,然后封装一下,哈哈
    HentaiMew
        30
    HentaiMew  
    OP
       2015-08-23 22:45:11 +08:00
    @magicdawn 当然可以 待我明天晚上公布出来。目前搜索结果单个条目包括,标题、内容、真实链接、域名、相关搜索列表等等 , 参数仅 关键字和页码
    HentaiMew
        31
    HentaiMew  
    OP
       2015-08-23 22:50:21 +08:00
    @shoumu .... 哈哈哈
    aofall
        32
    aofall  
       2015-08-23 23:16:56 +08:00 via iPhone
    BAE 的速度并不是很好,建议去掉背景图片
    yicun
        33
    yicun  
       2015-08-23 23:29:56 +08:00
    @magicdawn
    可以请教一下具体怎么在 heroku 上部署吗?
    HentaiMew
        34
    HentaiMew  
    OP
       2015-08-23 23:51:46 +08:00
    @orangleliu 搜索结果已经中文化了,欢迎使用 。 我个人感觉还行。想要的基本都能出来。
    HentaiMew
        35
    HentaiMew  
    OP
       2015-08-23 23:54:37 +08:00
    @aofall .... 你那边加载这张图 : http://globrv.duapp.com/resources/img/dandelion.jpg

    Ctrl+F5 一下, 试试要多久。 我这边是秒加载啊 基本看不到图的加载过程。
    HentaiMew
        36
    HentaiMew  
    OP
       2015-08-24 01:45:14 +08:00
    @aofall 你有时间可以看下现在的网站状态。哈哈哈,做了些细节调整,两个字:“魔性”。
    Kokororin
        37
    Kokororin  
       2015-08-24 08:52:05 +08:00
    @HentaiMew hl=en-US 确实没用 我的做法是在 header 中加入 Cookie: PREF=ID=fef74816681e7898:U=9ea73b7f54aa9005:FF=2:LD=en-US:NW=1:TM=1295952619:LM=1296005167:S=Dk6Hp_5SDKZ3OhJy; google 是依据 cookie 来判断的
    BGLL
        38
    BGLL  
       2015-08-24 09:01:14 +08:00
    看背景看瞎了,,,
    magicdawn
        39
    magicdawn  
       2015-08-24 10:00:22 +08:00
    @shoumu
    哦~缺一台墙外的 VPS~heroku 自己用还不错
    magicdawn
        40
    magicdawn  
       2015-08-24 10:02:51 +08:00
    @yicun 下载好 heroku toolkit, 在命令行登录, 然后设置好 git 地址, 每次 push 的时候是自动部署的~
    scarlex
        41
    scarlex  
       2015-08-24 10:25:23 +08:00
    强烈要球更换背景图!
    coolicer
        42
    coolicer  
       2015-08-24 10:56:38 +08:00
    亮瞎狗眼
    aofall
        43
    aofall  
       2015-08-24 11:22:22 +08:00
    @HentaiMew
    321KB 的图片,我加载了 15.24S ,建议把 CSS 、 JS 放在七牛云存储之类的地方,加载实在痛苦
    jQuery 的话可以用
    百度的公共库 http://libs.baidu.com/jquery/2.1.4/jquery.min.js
    M$的公共库 http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js
    以及............求!换!壁!纸!
    HentaiMew
        44
    HentaiMew  
    OP
       2015-08-24 11:32:39 +08:00
    @aofall 你边的网络环境访问 BAE 太糟糕了... 我这边非常快。所以为了照顾类似你那种网络环境的用户。我特意把图片换成了 SVG ,哈哈。已经没有壁纸了。
    jiongxiaobu
        45
    jiongxiaobu  
       2015-08-24 11:34:33 +08:00 via Android
    背景已看瞎
    HentaiMew
        46
    HentaiMew  
    OP
       2015-08-24 11:35:32 +08:00
    @scarlex 还是不要了,这背景我看着真心舒服。我已经弄成我的 chrome 新标签页了。时不时就看个标签页也不上网就盯着几十分钟,治好了我的浑身难受。
    wwek
        47
    wwek  
       2015-08-24 11:50:54 +08:00
    不带 https 等着被封
    HentaiMew
        48
    HentaiMew  
    OP
       2015-08-24 11:55:36 +08:00
    @wwek 带了 https 也没用 clt 端在 BAE 上, ZF 说封百度分分钟删掉应用。
    leqoqo
        49
    leqoqo  
       2015-08-24 14:54:26 +08:00
    这背景图片 立马关闭 哈哈
    doublleft
        50
    doublleft  
       2015-08-24 18:16:18 +08:00
    你知道啥叫光敏感性癫痫吗草你吗
    doublleft
        51
    doublleft  
       2015-08-24 18:16:49 +08:00
    差点一口吐键盘上
    HentaiMew
        52
    HentaiMew  
    OP
       2015-08-24 19:20:45 +08:00
    @doublleft 就你这素质 我没啥好道歉的 , 顺便送你俩字 “活该”。
    egrcc
        53
    egrcc  
       2015-08-24 19:56:57 +08:00
    期待楼主公布 api ,或者开源一下实现方案也好啊
    egrcc
        54
    egrcc  
       2015-08-24 19:59:00 +08:00
    @magicdawn 能请教一下 http://google.magicdawn.ml/ 是怎么实现的吗
    HentaiMew
        55
    HentaiMew  
    OP
       2015-08-24 20:03:22 +08:00
    @egrcc 他的那个就是反代啊亲,有时间把代码整理一下就开源 。 api 马上公布出来,待我吃饭归来。
    magicdawn
        56
    magicdawn  
       2015-08-24 21:25:21 +08:00
    @HentaiMew @egrcc

    不是反代, 跟你的差不多吧, 我这边上次偷懒, 直接把 html pipe 过来
    代码在 https://github.com/magicdawn/my-google 没时间修改,请轻拍~

    后面请求的是 一个 google server https://github.com/magicdawn/my-google/blob/master/lib%2Fgoogle.js#L19
    HentaiMew
        57
    HentaiMew  
    OP
       2015-08-24 21:27:44 +08:00
    @magicdawn 我以为你是反代用了一些插件 加载了些自己的 js 把谷歌的网页修改了呢。哈哈
    magicdawn
        58
    magicdawn  
       2015-08-24 21:42:35 +08:00
    @HentaiMew google 的页面比我自己搞的好看多了
    HentaiMew
        59
    HentaiMew  
    OP
       2015-08-24 22:46:51 +08:00
    @magicdawn
    @egrcc

    api 地址: http://globr-api.bluerain.io

    展开搜索 API ,就是了。可以在线 try ,来观察返回结构。其实可以写注释的,但是我懒得写了,结构很简单一眼就能看明白。
    "relatedKeys",这个里面是相关搜索的关键字。在我目前的 clt 端其实没有用到。
    yicun
        60
    yicun  
       2015-08-25 00:40:35 +08:00
    @magicdawn
    好像搜索出来的页面完全加载完,网页图片视频哪一行和最顶哪一行会缩进不见了。
    magicdawn
        61
    magicdawn  
       2015-08-25 07:38:32 +08:00
    @HentaiMew 这样 client server 可以放在国内了
    magicdawn
        62
    magicdawn  
       2015-08-25 07:42:16 +08:00
    @yicun 最上面被窝用 css 隐藏掉了 https://github.com/magicdawn/my-google/blob/master/public%2Fcss-src%2Fsearch.less#L4

    其他的真是未加载到~直接把 google 返回的 html 给客户端, html 会引用不知做甚的 js~真是烦呢
    messyidea
        63
    messyidea  
       2015-08-25 09:06:45 +08:00
    搜索界面的壁纸好赞~
    egrcc
        64
    egrcc  
       2015-08-25 12:37:36 +08:00
    @HentaiMew 能不能给个使用文档,打开就是这样的:
    不会用啊
    HentaiMew
        65
    HentaiMew  
    OP
       2015-08-25 12:50:21 +08:00
    @egrcc 真的非常抱歉,你截图的就是文档。但是昨晚我把项目迁移到 heroku 上去了。一些本地开发的代码被部署了。其实你可以看到, api-docks 哪里的 url 是 localhost 的....访问的是你本地所以加载不出来,有时间我注释掉本地代码重新部署下。

    核心的搜索 api 就是:

    http://globr-api.bluerain.io/api/search?keyword=v2ex&pagNum=2

    keyword 后面是关键字, pagNum 是页码(没有这个参数默认第一页)
    egrcc
        66
    egrcc  
       2015-08-28 20:50:48 +08:00
    @HentaiMew 试了下, api 可以用,不知道能否授权我在此项目中使用你的 api : https://github.com/egrcc/xunmi_android
    HentaiMew
        67
    HentaiMew  
    OP
       2015-08-28 21:05:30 +08:00
    @egrcc 哈哈 很赞 我平时业余也玩安卓的开发 但是从来没做一个像样的作品出来。

    这个主域名的文档 url 被我改过来了: http://globr-api.bluerain.io 可以在线 try ,以后可能开发新的 api

    api 随便用,希望你做得更好!
    egrcc
        68
    egrcc  
       2015-08-28 21:12:39 +08:00
    @HentaiMew 能否加个微信交流一下?我的: egrcc1994
    HentaiMew
        69
    HentaiMew  
    OP
       2015-08-28 21:15:58 +08:00
    @egrcc 真 TM 巧!我也在上海,微信已加。
    cffcaa
        70
    cffcaa  
       2015-08-29 09:34:03 +08:00
    刚看到时速度是快,加入搜索列表一天就挂了,也要表示 感谢下,
    HentaiMew
        71
    HentaiMew  
    OP
       2015-08-29 09:58:44 +08:00
    @cffcaa 哈哈 ... 没关系 api 还能用 你可以尝试自己开发一个自己的搜索啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2724 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:29 · PVG 19:29 · LAX 03:29 · JFK 06:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.