搭建自己的专属磁力搜索站点之[构建DHT爬虫]

来源:互联网 发布:java读取文本文件内容 编辑:程序博客网 时间:2024/04/30 00:50

       前段时间想找个资源,然后就发现一些BT种子磁力搜索的站点,然后就琢磨着怎么自己搭建一个这样的站点。终于经过不屑的努力终于搭建OK了,现将自己研究学习的过程记录下来分享给大家,同时也顺便整理下自己的知识学习体系,该系列分享文章分为三部分:

第一, 构建DHT爬虫

第二,  建立磁力链接索引

第三,  搭建搜索入口即搜索网站

        有想搭建的朋友请继续往下,先一睹为快吧,看看我搭建的站点效果如何:http://bearbt.com . 好了下面进入正题,搭建磁力搜索站点的第一要务就是获取磁力链接信息。磁力链接的获取是通过不断爬取DHT网络获得的,如果不太了解DHT网络原理的话请参考此博客:http://blog.csdn.net/mergerly/article/details/7989281,我在这里就不搬砖了。了解DHT原理后,我们可以认识到  DHT协议得到peer信息后会向他之前查询过的节点发送通知,根据这点,我们就可以构造自己的磁力链接爬虫。这也是爬虫最核心所在。具体思路流程总结如下

1. 伪装成正常的DHT网络节点加入DHT网络,
2.  不断接受peer信息,并不断伪装成发送peer信息节点的好友,以接受到更多的种子信息
3.  解析peer信息并请求资源下载保存磁力链接信息

伟人都说自己是站在巨人的肩膀上起来的,我也是。在自己动手码代码之前搜索了下相关爬虫通过对比找到了一个不错的DHT爬虫:https://github.com/fanpei91/p2pspider,其将获取的链接信息解析并生成种子保存在本地文件,我们磁力搜索站点不需要将其解析生成种子保存,稍作修改即可直接将磁力链接保存在数据库,以备后面索引搜索。
那么如何安装运行爬虫呢,我以linux系统举例说明,其他系统大同小异。爬虫是用nodejs编写的,安装过程如下:

1.  搭建nodejs运行环境
a. 去nodejs官网下载新版的nodejs解压到本地;https://nodejs.org/en/
b. npm安装,新版nodejs集成了npm 无需单独安装
c. 配置环境变量

2. 运行爬虫
a. 在爬虫目录下执行命令 npm 下载安装爬虫程序需要的组件
b. 执行命令 nodejs index.js 即可运行爬虫

建议放在外服务器测试,本地测试需要配置路由器端口转发.
下图是我不到10天爬取了200多万条数据,到此DHT爬虫搭建完毕.

爬虫抓取到的数据如何高效的被前台搜索到? 面对几百万甚至上千万的数据记录查询,如果只是通过数据库提供的接口的进行搜索查找,那无疑是不现实的.
下篇文章分享如何为这百万数据建立高效的索引以便前端网站快速搜索,
请关注五枫的博客:  http://www.wolfoot.com

请尊重原创转载请注明出处.

阅读全文
1 0