全球主机交流论坛

标题: PHP版的DHT爬虫终于OK了! [打印本页]

作者: 带头盔滴衰锅    时间: 2015-5-5 11:19
标题: PHP版的DHT爬虫终于OK了!
本帖最后由 带头盔滴衰锅 于 2015-5-5 11:35 编辑

经过不断的努力,探索,PHP版的DHT爬虫终于可以正常使用了,能够正确的获取到info_hash,当获取到info_hash后,剩下的当然就是下载种子,解析种子,生成磁力链等等了~

资源占用情况:http://128.199.164.43/proberv.php
采集结果查看:http://128.199.164.43/infohash.txt

当然,现在还属于测试阶段,我也随意做了下统计,由于在公司上班,不方便做太多,暂时先统计一会儿:

  1. 2015-05-05 11:00:23 - 服务启动...
  2. 2015-05-05 11:05:15 获取到info_hash: 4CDBE0E0D7FB5E7F099E9DA4E2E821D00991AA10
  3. 2015-05-05 11:06:10 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  4. 2015-05-05 11:08:14 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  5. 2015-05-05 11:08:23 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  6. 2015-05-05 11:09:12 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  7. 2015-05-05 11:10:33 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  8. 2015-05-05 11:10:51 获取到info_hash: 98C1463A692B0576110FCCF6F29AC15C17CB30B0
  9. 2015-05-05 11:11:02 获取到info_hash: 443E2692CFAD3CFA0C1607015B5CE624C15C8B5B
  10. 2015-05-05 11:11:13 获取到info_hash: 642BDE39695451D7742DE1DBCD382376AE15E7E8
  11. 2015-05-05 11:11:32 获取到info_hash: 5814217CE0545CA8A95110DFC093884E6C4DA2EA
  12. 2015-05-05 11:11:59 获取到info_hash: B77DA31854E6EC9858B6A75A48520EF4F6CC53D3
  13. 2015-05-05 11:12:03 获取到info_hash: E701105FF0A6448FD99DE2FC64AC7F97D2847DD1
  14. 2015-05-05 11:12:42 获取到info_hash: 443E235E6115DA263A15EF3CED25AA53D4F55D10
  15. 2015-05-05 11:12:53 获取到info_hash: 44327AE56C69FF9EB710511C6CD1C88FC2F708B8
  16. 2015-05-05 11:13:10 获取到info_hash: 636D718BDB3686D4B45BA311276C5985427CB177
  17. 2015-05-05 11:14:41 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  18. 2015-05-05 11:15:26 获取到info_hash: 610965FF873B184F44F9FFDB1A2FB2C509A22B87
  19. 2015-05-05 11:15:35 获取到info_hash: 44327B29A63338BA79D0277C918CC7B53F03C2D5
复制代码


从统计中可以看出,前期刚启动的时候,由于正在寻找朋友,所以很慢,从五分钟开始陆续接收到info_hash,之后速度越来越快,当然,我这里统计只是随意统计了下,并没有彻底统计,不好说什么,不过可以看出,到后期还是能有一定的速度,就是不知道速度能够达到多少了~

之前也说过,当我写出来之后,会把代码分享出来,这里虽然只是把爬虫做出来,其他的东西还没做,但依然先公布代码,可以给大家参考下,也欢迎大神们对我的代码指正一下,非常感谢!

代码下载:http://shuang.ca/php-dht-is-ok/

使用方法:
一、安装PHP,建议安装最新版本
二、安装swoole扩展,安装方法请参照官方说明:http://wiki.swoole.com/wiki/page/6.html
三、将代码传到服务器中
四、切换到代码目录,运行(请注意php程序路径):
  1. php dht.php
复制代码

五、在infohash.log中查看结果

这里也希望各位朋友能够帮忙测试下,毕竟我一个人测试的话,也没什么说服力
作者: 带头盔滴衰锅    时间: 2015-5-5 11:22
又看了下采集结果,运行25分钟,采集到26条infohash,那基本上大概一分钟1条左右

  1. 2015-05-05 11:00:23 - 服务启动...
  2. 2015-05-05 11:05:15 获取到info_hash: 4CDBE0E0D7FB5E7F099E9DA4E2E821D00991AA10
  3. 2015-05-05 11:06:10 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  4. 2015-05-05 11:08:14 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  5. 2015-05-05 11:08:23 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  6. 2015-05-05 11:09:12 获取到info_hash: 443E2062BF318D02C269239DA98F50687514175E
  7. 2015-05-05 11:10:33 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  8. 2015-05-05 11:10:51 获取到info_hash: 98C1463A692B0576110FCCF6F29AC15C17CB30B0
  9. 2015-05-05 11:11:02 获取到info_hash: 443E2692CFAD3CFA0C1607015B5CE624C15C8B5B
  10. 2015-05-05 11:11:13 获取到info_hash: 642BDE39695451D7742DE1DBCD382376AE15E7E8
  11. 2015-05-05 11:11:32 获取到info_hash: 5814217CE0545CA8A95110DFC093884E6C4DA2EA
  12. 2015-05-05 11:11:59 获取到info_hash: B77DA31854E6EC9858B6A75A48520EF4F6CC53D3
  13. 2015-05-05 11:12:03 获取到info_hash: E701105FF0A6448FD99DE2FC64AC7F97D2847DD1
  14. 2015-05-05 11:12:42 获取到info_hash: 443E235E6115DA263A15EF3CED25AA53D4F55D10
  15. 2015-05-05 11:12:53 获取到info_hash: 44327AE56C69FF9EB710511C6CD1C88FC2F708B8
  16. 2015-05-05 11:13:10 获取到info_hash: 636D718BDB3686D4B45BA311276C5985427CB177
  17. 2015-05-05 11:14:41 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  18. 2015-05-05 11:15:26 获取到info_hash: 610965FF873B184F44F9FFDB1A2FB2C509A22B87
  19. 2015-05-05 11:15:35 获取到info_hash: 44327B29A63338BA79D0277C918CC7B53F03C2D5
  20. 2015-05-05 11:16:04 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  21. 2015-05-05 11:17:22 获取到info_hash: 3FE532FE7C356560EF3447951BC8B37F1CB8157D
  22. 2015-05-05 11:21:08 获取到info_hash: 2160274D43036AEC863F19FD8F82F4404191B7BC
  23. 2015-05-05 11:23:59 获取到info_hash: 44327B2BBE11D38B5D1CF2DDCD5473A71B91BDCB
  24. 2015-05-05 11:24:02 获取到info_hash: 44327AE56C69FF9EB710511C6CD1C88FC2F708B8
  25. 2015-05-05 11:24:13 获取到info_hash: 2160248A0FD88928261C4B346EFC514EB4DDA517
  26. 2015-05-05 11:24:46 获取到info_hash: 44327AE56C69FF9EB710511C6CD1C88FC2F708B8
  27. 2015-05-05 11:25:46 获取到info_hash: 3FE532A10A142C2ED6DCF8251E80120722C1CFFB
复制代码

作者: 瞌睡熊    时间: 2015-5-5 11:22
支持分享~

字数补丁
作者: seanhuang    时间: 2015-5-5 11:24
支持。
作者: mlmm    时间: 2015-5-5 11:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 带头盔滴衰锅    时间: 2015-5-5 11:36
重新修改了下,把采集结果写到web目录下,这样大家就可以实时的查看采集结果了,同时公布了探针地址,大家也可以查看当前资源占用情况
作者: hising    时间: 2015-5-5 11:42
大神。
作者: salang    时间: 2015-5-5 11:44
恭喜恭喜,快做出演示站,来瞧瞧~~
作者: 我很帅    时间: 2015-5-5 11:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: mlmm    时间: 2015-5-5 11:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 带头盔滴衰锅    时间: 2015-5-5 11:49
演示站什么的要回去写,现在上班,问这个干什么的,我只能说这个是邪恶的东西
作者: oskey    时间: 2015-5-5 11:50
战略性马克。
作者: 带头盔滴衰锅    时间: 2015-5-5 11:50
mlmm 发表于 2015-5-5 11:48
刚打开这个/infohash.txt 随便找了个  E0A1B19022D5F7B8B91890ECBF2400E620405CE1   看了下 带码啊  ...

。。。我不负责采集到的内容是什么,我只负责搬运。。。
作者: mlmm    时间: 2015-5-5 11:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: xikk    时间: 2015-5-5 11:52
真厉害  膜拜
作者: websmallc    时间: 2015-5-5 11:54
很叼!
作者: Dk2014    时间: 2015-5-5 11:55
不错,虽然用不到
作者: qxwo    时间: 2015-5-5 11:57
略屌略屌
作者: 海盗湾    时间: 2015-5-5 11:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 带头盔滴衰锅    时间: 2015-5-5 12:00
突然发现,我忘了对比是否存在,所以结果中会有一些重复hash。。。。
作者: sun2008    时间: 2015-5-5 12:35
支持php
作者: qibinghua    时间: 2015-5-5 12:36
你放到github上去呗
作者: 带头盔滴衰锅    时间: 2015-5-5 12:40
qibinghua 发表于 2015-5-5 12:36
你放到github上去呗

放了,不过我账号被判定为机器人,需要联系github恢复,已经联系了,等待他们回复
作者: 天也就这么大    时间: 2015-5-5 12:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: ICFOX    时间: 2015-5-5 12:58
技术性收藏!
作者: didiaomiss    时间: 2015-5-5 13:09
就几个文件 不知道怎么用
作者: 带头盔滴衰锅    时间: 2015-5-5 13:15
didiaomiss 发表于 2015-5-5 13:09
就几个文件 不知道怎么用

可以看说明文档:http://shuang.ca/php-dht-is-ok/
作者: websmallc    时间: 2015-5-5 13:24
木有前台吗?
作者: 带头盔滴衰锅    时间: 2015-5-5 13:31
websmallc 发表于 2015-5-5 13:24
木有前台吗?

这个只是前台,其他的还没弄呢
作者: 51sky    时间: 2015-5-5 15:04
支持一个
作者: mslxd    时间: 2015-5-5 15:15
下一步怎么转换到文件的真正信息啊,,,,比如里面有几个东西什么的。。。
作者: 带头盔滴衰锅    时间: 2015-5-5 15:23
mslxd 发表于 2015-5-5 15:15
下一步怎么转换到文件的真正信息啊,,,,比如里面有几个东西什么的。。。 ...

这个我后面会继续写的,不用慌
原理就是通过一些提供种子下载的种子仓库来下载种子文件,然后解析出种子文件信息
作者: ericls    时间: 2015-5-5 15:44
带头盔滴衰锅 发表于 2015-5-5 03:23
这个我后面会继续写的,不用慌
原理就是通过一些提供种子下载的种子仓库来下载种子文件,然后解析出种子 ...

种子解析的话 用哪个第三方网站比较强?
作者: 带头盔滴衰锅    时间: 2015-5-5 15:49
ericls 发表于 2015-5-5 15:44
种子解析的话 用哪个第三方网站比较强?

种子解析不用第三方网站啊,直接PHP就可以解析出来,只是种子下载才需要第三方网站而已
作者: ericls    时间: 2015-5-5 15:53
带头盔滴衰锅 发表于 2015-5-5 03:49
种子解析不用第三方网站啊,直接PHP就可以解析出来,只是种子下载才需要第三方网站而已 ...

就是从哪家把磁力下成种子。。 。
作者: cw723    时间: 2015-5-5 16:01
带头盔滴衰锅 发表于 2015-5-5 15:49
种子解析不用第三方网站啊,直接PHP就可以解析出来,只是种子下载才需要第三方网站而已 ...

用的是纯PHP进行抓取?
作者: 带头盔滴衰锅    时间: 2015-5-5 16:10
cw723 发表于 2015-5-5 16:01
用的是纯PHP进行抓取?

是啊,就是PHP的,没有用其他啊
作者: 带头盔滴衰锅    时间: 2015-5-5 16:13
ericls 发表于 2015-5-5 15:53
就是从哪家把磁力下成种子。。 。

http://torcache.net/torrent/{hash}.torrent
作者: cw723    时间: 2015-5-5 16:22
带头盔滴衰锅 发表于 2015-5-5 16:10
是啊,就是PHP的,没有用其他啊

如果抓取的部分也用PHP 会不会效率拙计?
作者: 带头盔滴衰锅    时间: 2015-5-5 16:25
cw723 发表于 2015-5-5 16:22
如果抓取的部分也用PHP 会不会效率拙计?

抓取部分就另外写一份,使用异步抓取,效率应该不会太差吧,这个还没测试
作者: cw723    时间: 2015-5-5 16:39
带头盔滴衰锅 发表于 2015-5-5 16:25
抓取部分就另外写一份,使用异步抓取,效率应该不会太差吧,这个还没测试 ...

感觉好牛逼 现在只是抓取 还没入库么、
作者: 带头盔滴衰锅    时间: 2015-5-5 16:42
cw723 发表于 2015-5-5 16:39
感觉好牛逼 现在只是抓取 还没入库么、

对,只是抓取,先把抓取弄完了,入库就好整了
现在最大的问题是抓取的效率问题,得先把效率提上去
作者: cw723    时间: 2015-5-5 16:50
带头盔滴衰锅 发表于 2015-5-5 16:42
对,只是抓取,先把抓取弄完了,入库就好整了
现在最大的问题是抓取的效率问题,得先把效率提上去 ...

求模拟思路
作者: 带头盔滴衰锅    时间: 2015-5-5 17:11
cw723 发表于 2015-5-5 16:50
求模拟思路

思路?
爬虫只负责爬,再专门弄个文件,定时对爬虫抓取来的数据进行提取,然后下载——入库
前台只负责显示
作者: 藐视天地    时间: 2015-5-5 17:41

mark
作者: tyucom    时间: 2015-5-5 19:19
装上跑了几小时,竟然啥都没有。

top看运行状态老是出现

PHP Warning:  Illegal string offset 'y' in /home/wwwrootdefault/dht/dht.php on line 64
PHP Notice:  Uninitialized string offset: 0 in /home/wwwrootdefault/dht/dht.php on line 64
PHP Warning:  Illegal string offset 'y' in /home/wwwrootdefault/dht/dht.php on line 69
PHP Notice:  Uninitialized string offset: 0 in /home/wwwrootdefault/dht/dht.php on line 69

而且也查看不到连入连出IP, 不知哪问题。


作者: jpk    时间: 2015-5-5 19:24
膜拜。
作者: gxpn    时间: 2015-5-5 19:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 啪啪啪啪啪    时间: 2015-5-5 20:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 带头盔滴衰锅    时间: 2015-5-5 21:51
tyucom 发表于 2015-5-5 19:19
装上跑了几小时,竟然啥都没有。

top看运行状态老是出现

你看下你的防火墙有没有开着?
还有就是,出现上面那些错误不用管,只是接收数据时,有的时候会接收到空数据
作者: 带头盔滴衰锅    时间: 2015-5-5 21:53
啪啪啪啪啪 发表于 2015-5-5 20:41
DHT爬虫  抓取的是 哪里的数据?

DHT网络里的,具体可以查看DHT协议文档
作者: cong    时间: 2015-5-5 22:24
mark
作者: wangnet    时间: 2015-5-5 23:37
楼主说的是什么啊,好厉害的样子啊。
作者: tyucom    时间: 2015-5-6 07:05
带头盔滴衰锅 发表于 2015-5-5 21:51
你看下你的防火墙有没有开着?
还有就是,出现上面那些错误不用管,只是接收数据时,有的时候会接收到空 ...

防火墙已关。

美国VPS,  运行这个DHT 后,负载一直有, 而且网卡流量也有。  就是获取不到。

我再挂一天看看。

我还换一个DO新加坡的看看。
作者: mlmm    时间: 2015-5-6 08:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 带头盔滴衰锅    时间: 2015-5-6 08:17
tyucom 发表于 2015-5-6 07:05
防火墙已关。

美国VPS,  运行这个DHT 后,负载一直有, 而且网卡流量也有。  就是获取不到。

我这边也在改进着,我还用另外一台测试新版本的,直接写到数据库中,新加坡那台也重新弄了记录方式,然后两台差不多的时间开始运行的,现在新版本的采集到700多了
作者: alocne    时间: 2015-5-6 11:38
赞~!@434支持,
作者: 一不小心    时间: 2015-5-6 12:30
无论如何都要支持!
作者: tyucom    时间: 2015-5-6 13:01
带头盔滴衰锅 发表于 2015-5-6 08:17
我这边也在改进着,我还用另外一台测试新版本的,直接写到数据库中,新加坡那台也重新弄了记录方式,然后 ...

使用一个日本VPS测试了也一样,没有输出。   

但是换成你博客里的那个最初版输出到  error.log   里的,就有数据了。

包括 infohash 。  能1秒几个吧。  
只是负载太高了,一下子负载10,  流进流出流量 5M/s  


不知为啥,你那后来的版本,啥也获取不到。
最原始的那个就能获取成功。
作者: COOCOO    时间: 2015-5-6 13:44
很棒。。mark
作者: 带头盔滴衰锅    时间: 2015-5-6 14:20
tyucom 发表于 2015-5-6 13:01
使用一个日本VPS测试了也一样,没有输出。   

但是换成你博客里的那个最初版输出到  error.log   里的, ...

最原始那个获取的不是announce_peer的,是get_peers的,获取到的hash并不准确,不能确定是否可以下载的
新版本这个一直获取不到还是有一点慢呢?
作者: tyucom    时间: 2015-5-6 17:21
带头盔滴衰锅 发表于 2015-5-6 14:20
最原始那个获取的不是announce_peer的,是get_peers的,获取到的hash并不准确,不能确定是否可以下载的
...

一直获取不到。。  什么都没有。

txt 文件只有一行开始信息。

两个VPS都一样。
作者: skycms    时间: 2015-5-6 21:16
其他信息呢???
作者: 带头盔滴衰锅    时间: 2015-5-6 21:25
tyucom 发表于 2015-5-6 17:21
一直获取不到。。  什么都没有。

txt 文件只有一行开始信息。

哦,那我再看看,我这边获取正常,稍微等等,我测试着新版本
作者: 欧阳逍遥    时间: 2015-10-15 15:13
楼主的 爽擦 怎么挂了?
作者: ultramancliub    时间: 2015-10-15 15:18
觉得蛮不错了
作者: pony    时间: 2015-10-15 16:07
恭喜恭喜,快做出演示站,来瞧瞧~~
作者: trojansun    时间: 2015-10-15 16:10
放心  你会火的 ~
作者: 带头盔滴衰锅    时间: 2015-10-15 18:59
欧阳逍遥 发表于 2015-10-15 15:13
楼主的 爽擦 怎么挂了?

不是网站挂了,是域名挂了,现在.ca不允许加拿大以外的人注册使用,要我传资料,于是抛弃之,现在域名是
www.lovekk.org
作者: _jerryjee    时间: 2015-10-15 20:11
已经无法访问了。
作者: onlyxuyang    时间: 2015-10-16 17:11
……github上dht爬虫也有不少 可以参考一下…… 我试着在vps上跑过…… 直接被判定ddos suspend了 警告再有就删机器了 →_→




欢迎光临 全球主机交流论坛 (https://hostloc.gdisk.cf/) Powered by Discuz! X3.4