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

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

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

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

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

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

© 2021 V2EX