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

2016 年 8 月 8 日
 Lime
主要实现了 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
11303 次点击
所在节点    分享发现
42 条回复
batnss
2016 年 8 月 8 日
支持下
Asimov
2016 年 8 月 8 日
Lonely
2016 年 8 月 8 日
interesting
ikw
2016 年 8 月 8 日
有意思,周末看看代码,学习一下
Lime
2016 年 8 月 8 日
@Asimov 嗯,看了下这个的源代码,关于爬虫的原理是类似的,实现上他没有遵循官方 BT 协议规范,比如 routingtable 的实现,而且 dht 协议也只实现了一部分, transaction 的处理则没有。不过他这样做也没错,因为两者的目标不一样。他那个是一个纯 BT 爬虫,我则希望按照官方文档实现,然后通过更改参数,提供标准模式和爬虫模式,也就是说,我这个既可以用来做一个标准的 DHT 组件,也可以用来爬 BT 种子。
scnace
2016 年 8 月 8 日
已 star 支持。。有空玩玩😊
v2014
2016 年 8 月 8 日
好多黑方块,编码有问题吧
Lime
2016 年 8 月 8 日
@v2014 好眼力!因为爬来的内容是多种语言,看了下竟然还有阿拉伯语的,所以猜测他们制作种子的时候有的不是用 utf-8 做的,所以 utf8 解不了...
youmuyoua
2016 年 8 月 8 日
厉害!
fising
2016 年 8 月 8 日
每隔一段时间就有人来宣传自己造的 DHT 轮子
Lime
2016 年 8 月 8 日
@fising 哈哈
la0wei
2016 年 8 月 8 日
@Lime @fising kat 倒下后更加需要这样的轮子
crayygy
2016 年 8 月 8 日
随手搜了个”生活大爆炸“,结果也是有点感人。还好工位后面没人= =
Lime
2016 年 8 月 8 日
@crayygy = =
dxwwym
2016 年 8 月 8 日
学习
m5Rc6ufZ9fj4tdoY
2016 年 8 月 8 日
感觉结果不太准确啊。。结果感人
Lime
2016 年 8 月 8 日
@mangoim bthub.io 是用 es 来全文检索的
itopidea
2016 年 8 月 8 日
我一直用这个 http://cli.info/
unique
2016 年 8 月 8 日
刚好在研究这个, mark
Lime
2016 年 8 月 8 日
@itopidea 这个前端框架貌似用的是 weui

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

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

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

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

© 2021 V2EX