Lime

分享一个 Go 写的 BT 种子爬虫

  •  
  •   Lime · Aug 8, 2016 · 12280 views
    This topic created in 3743 days ago, the information mentioned may be changed or developed.
    主要实现了 BitTorrent DHT 协议。爬虫的原理主要是利用 DHT 协议监听别人的 announce_peer 消息,然后根据得到的 infohash 利用 BEP-9 下载 medata info(BT 种子文件的主要部分,可以认为是种子文件)。粗略估计了下,不到 24 小时左右下载了 10w+个 BT 种子。

    里边的数据看了下,有很多电影、 pdf 、 mp3 、软件等资源,包括很多限制级资源,比如色情视频。你可以拿它做数据分析,也可以用它来建一个 BT 搜索引擎,不过要小心版权问题,也要做好被墙的心理准备(涉及敏感资源)。

    最后 http://bthub.io 是用它建的一个 BT search engine 。

    Github: https://github.com/shiyanhui/dht
    Supplement 1  ·  Aug 8, 2016
    为那些没有 Go 环境而又懒的人,准备好了编译好的二进制可执行文件,包括 Win , Linux 和 OS X 平台的。下载下来解压,直接执行对应平台的程序即可。

    https://github.com/shiyanhui/dht/releases
    Supplement 2  ·  Aug 9, 2016
    准备写一些列文章讲一下,这个原理篇 http://www.jianshu.com/p/5c8e1ef0e0c3
    42 replies  •  2016-08-12 13:36:54 +08:00
    batnss
    batnss
    Aug 8, 2016 via Android
    1
    支持下
    Asimov
    Asimov
    Aug 8, 2016
    2
    Lonely
    Lonely
    Aug 8, 2016 via iPhone
    3
    interesting
    ikw
    ikw
    Aug 8, 2016 via iPhone
    4
    有意思,周末看看代码,学习一下
    Lime
    Lime
    OP
    Aug 8, 2016 via iPhone
    5
    @Asimov 嗯,看了下这个的源代码,关于爬虫的原理是类似的,实现上他没有遵循官方 BT 协议规范,比如 routingtable 的实现,而且 dht 协议也只实现了一部分, transaction 的处理则没有。不过他这样做也没错,因为两者的目标不一样。他那个是一个纯 BT 爬虫,我则希望按照官方文档实现,然后通过更改参数,提供标准模式和爬虫模式,也就是说,我这个既可以用来做一个标准的 DHT 组件,也可以用来爬 BT 种子。
    scnace
    scnace
    Aug 8, 2016 via Android
    6
    已 star 支持。。有空玩玩😊
    v2014
    v2014
    Aug 8, 2016
    7
    好多黑方块,编码有问题吧
    Lime
    Lime
    OP
    Aug 8, 2016
    8
    @v2014 好眼力!因为爬来的内容是多种语言,看了下竟然还有阿拉伯语的,所以猜测他们制作种子的时候有的不是用 utf-8 做的,所以 utf8 解不了...
    youmuyoua
    youmuyoua
    Aug 8, 2016
    9
    厉害!
    fising
    fising
    Aug 8, 2016 via iPhone
    10
    每隔一段时间就有人来宣传自己造的 DHT 轮子
    Lime
    Lime
    OP
    Aug 8, 2016
    11
    @fising 哈哈
    la0wei
    la0wei
    Aug 8, 2016
    12
    @Lime @fising kat 倒下后更加需要这样的轮子
    crayygy
    crayygy
    Aug 8, 2016
    13
    随手搜了个”生活大爆炸“,结果也是有点感人。还好工位后面没人= =
    Lime
    Lime
    OP
    Aug 8, 2016
    14
    @crayygy = =
    dxwwym
    dxwwym
    Aug 8, 2016 via iPhone
    15
    学习
    m5Rc6ufZ9fj4tdoY
    m5Rc6ufZ9fj4tdoY
    Aug 8, 2016
    16
    感觉结果不太准确啊。。结果感人
    Lime
    Lime
    OP
    Aug 8, 2016 via iPhone
    17
    @mangoim bthub.io 是用 es 来全文检索的
    itopidea
    itopidea
    Aug 8, 2016
    18
    我一直用这个 http://cli.info/
    unique
    unique
    Aug 8, 2016
    19
    刚好在研究这个, mark
    Lime
    Lime
    OP
    Aug 8, 2016
    20
    @itopidea 这个前端框架貌似用的是 weui
    Lime
    Lime
    OP
    Aug 8, 2016
    21
    上 Github Go trend 了,内牛满面
    doomhack
    doomhack
    Aug 8, 2016
    22
    @Lime 小白一个,求怎么使用
    Lime
    Lime
    OP
    Aug 8, 2016
    23
    @doomhack

    # 安装 Go ,设定 GOPATH
    # go get github.com/shiyanhui/dht
    # 进入到 GOPATH/github.com/shiyanhui/dht ,然后执行 go run example/spider/spider.go

    就可以看到效果啦
    doomhack
    doomhack
    Aug 8, 2016
    24
    @Lime 谢谢指点!
    Lime
    Lime
    OP
    Aug 8, 2016
    25
    @doomhack release 了编译好的二进制,你可以下载 https://github.com/shiyanhui/dht/releases
    matrix67
    matrix67
    Aug 8, 2016
    26
    配合这两个图有奇效



    Lime
    Lime
    OP
    Aug 9, 2016
    28
    @matrix67 这个厉害!
    Lime
    Lime
    OP
    Aug 9, 2016
    29
    另外,那个软件是什么?
    isbase
    isbase
    Aug 9, 2016 via Android
    30
    @matrix67 这个软件是什么呢?
    yanyuan2046
    yanyuan2046
    Aug 9, 2016
    31
    实现的相当漂亮,是我见过最好的
    tinyproxy
    tinyproxy
    Aug 9, 2016
    32
    T_T 全是乱码。。。是我打开姿势的问题么

    http://bthub.io/search?key=1024

    Lime
    Lime
    OP
    Aug 9, 2016
    33
    @tinyproxy 改成 GBK 后是这样的

    http://imgur.com/a/Z63wH
    Lime
    Lime
    OP
    Aug 9, 2016
    34
    额
    doomhack
    doomhack
    Aug 9, 2016
    35
    @Lime 感谢!!!!
    bluesky139
    bluesky139
    Aug 10, 2016 via Android
    36
    @Lime 请问内网环境下是否有效,能不能抓到?
    jasondan
    jasondan
    Aug 10, 2016
    37
    楼主威武
    Lime
    Lime
    OP
    Aug 10, 2016
    38
    @bluesky139 在内网还不行,目前还不能穿透 NAT
    Garantion
    Garantion
    Aug 11, 2016
    39
    @Lime burp suite
    yunji3344
    yunji3344
    Aug 12, 2016
    40
    http://www.7tdy.cc 看电影而已
    redmofang
    redmofang
    Aug 12, 2016
    41
    bthub 已经 502 了
    Lime
    Lime
    OP
    Aug 12, 2016
    42
    @redmofang 嗯,刚才在调试,有点问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1528 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 118ms · UTC 15:30 · PVG 23:30 · LAX 07:30 · JFK 10:30
    ♥ Do have faith in what you're doing.