nodejs 实现 磁力链接资源搜索 前端: vue 后端: koa2 + MongoDB + Elasticsearch - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lueying
V2EX    分享创造

nodejs 实现 磁力链接资源搜索 前端: vue 后端: koa2 + MongoDB + Elasticsearch

  •  
  •   lueying
    ssstk 2018-06-20 10:12:00 +08:00 4921 次点击
    这是一个创建于 2675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目简介

    • 此项目仅用学习交流技术使用 不做商业用途。
    • 前端站点 项目效果预览 http://findcl.com
    • 源码地址 https://github.com/ssstk/findcl
    • 后端脚本 磁力链接获取 磁力链接解析 入库 Mongodb 定时同步 Elasticsearch
    • 源码地址 https://github.com/ssstk/manget2torrent
    • 无意读到 @keenwon 的 node 磁力搜索引擎的文章,感觉非常有意思,同时也谢谢能把项目分享出来 @keenwon 的项目地址antcolony 实现方式 还是有很大的不同 从获取磁力 到解析磁力

    上线

    • 2018-06-01 网站正式上线。域名是 http://findcl.com
    • 两台 VPS (都是某些云做活动买的 配置低)
    • 第一台部署了 FindCl 站点本身( koa2、nginx )和单个节点的 Elasticsearch
    • 第二台部署了磁力链接爬虫
    • Mongodb 数据库在阿里云(目前有 300W 数据库,每日新收录 3W+的数据)

    项目依赖

    • DHT BT 资源爬虫 磁力链接解析 dhtspider
    • 前端站点 torrent-stream
    • Mongodb 数据库
    • 中文搜索 Elasticsearch.js
    • 定时执行 Mongodb 与 Elasticsearch 的数据同步
    • koa2
    • ...

    存在的问题

    • torrent-stream 解析磁力链接缓慢 需要好几秒 P2P 网络没有资源时还有可能解析不到
    • dhtspider 爬虫 由于服务器带宽是 1m 所以跑到时间长就把带宽跑慢了 现在的做法就是搜集一些磁力链接暂停爬虫 解析完毕之后再启动爬虫
    24 条回复    2018-11-04 18:45:46 +08:00
    oska117
        1
    oska117  
       2018-06-20 11:16:54 +08:00 via Android
    不错,谢谢分享,研究一下
    lueying
        2
    lueying  
    OP
       2018-06-20 13:49:06 +08:00
    @oska117 大家一起学习交流
    isevenfox
        3
    isevenfox  
       2018-06-20 14:23:19 +08:00
    star 一波~ 感谢
    lueying
        4
    lueying  
    OP
       2018-06-20 22:28:12 +08:00
    @isevenfox 谢谢大哥支持
    freemagico
        5
    freemagico  
       2018-06-20 22:38:29 +08:00
    已 star,请问爬虫是从哪里爬磁链的?
    lueying
        6
    lueying  
    OP
       2018-06-20 23:29:39 +08:00
    @freemagico 这里是磁链到爬虫脚本 是加入 DHT 网络 获取到 hashinfo 附上 js 脚本地址 可以瞅瞅 跑跑试试
    https://github.com/ssstk/manget2torrent/blob/master/src/spider/index.js
    hezhile
        7
    hezhile  
       2018-06-21 10:03:05 +08:00   1
    搜索结果的排序依据是什么呢?
    可以按照收录日期排序码?
    lueying
        8
    lueying  
    OP
       2018-06-21 10:20:46 +08:00
    @hezhile 现在是 Elasticsearch 的自己查询的排序
    现在正在添加最新收录排序
    有问题欢迎建[issue]( https://github.com/ssstk/findcl/issues)交流。哇哈哈
    lueying
        9
    lueying  
    OP
       2018-06-21 10:22:26 +08:00
    lueying
        10
    lueying  
    OP
       2018-06-21 10:39:54 +08:00   1
    @hezhile 搜索结果 收录日期排序已经添加完成 上线 !谢谢大哥提的建议 哇哈哈
    wanwan
        11
    wanwan  
       2018-06-22 15:50:51 +08:00
    这类网站比较多啊。
    lueying
        12
    lueying  
    OP
       2018-06-22 16:29:22 +08:00
    @wanwan 有什么好的建议或想法可以提出了哦 咱们可以和别人不一样的哦 ~.~
    我们不一样 ~~~
    artandlol
        13
    artandlol  
       2018-06-23 08:27:13 +08:00 via iPhone
    Docker 化的项目更受欢迎
    lueying
        14
    lueying  
    OP
       2018-06-23 09:56:47 +08:00
    @artandlol 谢谢大佬指点 我搞个发布上来就好了 ~
    artandlol
        15
    artandlol  
       2018-06-23 11:35:35 +08:00
    @sstzma #14 过奖了,小菜一枚。 配合 t/383801 这个使用 味道更佳
    Desiree
        16
    Desiree  
       2018-06-23 14:54:02 +08:00
    请问这些数据是从哪里来的?
    lueying
        17
    lueying  
    OP
       2018-06-23 17:18:19 +08:00
    @Desiree 是加入 DHT 网络 获取到 hashinfo 再解析 hsahinfo 获取 BT 种子信息 可以了解下 BitTorrent 协议
    这里是磁链到爬虫源码
    https://github.com/ssstk/manget2torrent/blob/master/src/spider/index.js
    duola
        18
    duola  
       2018-06-24 12:13:13 +08:00
    @sstzma 请问一下,为什么要用两个数据库呢?直接用 Elasticsearch 不就行了吗?
    lueying
        19
    lueying  
    OP
       2018-06-24 14:05:30 +08:00
    @duola ES 团队不推荐完全采用 ES 作为主要存储,缺乏访问控制还有一些数据丢失和污染的问题。ES 没有事务,而且是近实时。成本也比数据库高。但是它的优势在于索引后,方便搜索,这是 mongodb 等数据库干不了的。
    所以,搜索的时候使用 Elasticsearch,进入具体的资源页面,就直接从 mongodb 里取数据。
    当然 小项目玩玩 用什么感觉都无所谓了~
    duola
        20
    duola  
       2018-06-24 15:08:49 +08:00
    @sstzma 这么详细回复,非常感谢!
    Desiree
        21
    Desiree  
       2018-06-24 23:13:01 +08:00
    @sstzma 谢谢回复!
    jinzhe
        22
    jinzhe  
       2018-06-26 15:40:56 +08:00
    搜索了下“藏”
    lueying
        23
    lueying  
    OP
       2018-06-26 16:24:45 +08:00
    @jinzhe 网站所有的资源均来自网络收集,且不保存任何种子 。哇哈哈 ~.~
    sinv
        24
    sinv  
       2018-11-04 18:45:46 +08:00
    @lueying findcl 挂了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3386 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:35 PVG 12:35 LAX 21:35 JFK 00:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86