ubuntu16.04安装手撕包菜DHT磁力站点源码

标签: ubuntu16 包菜 dht | 发表时间:2016-10-18 00:00 | 作者:
出处:https://lanmaowz.com/

现在的磁力搜索站点非常多,其实这都是跟百度学来的,在大陆是不能建设网站传播非法内容的,被发现轻则查水表,重则进小黑屋保你衣食无忧(你懂的),但是提供搜索技术就不一样,第一你不存储任何实质性的内容,第二你只是提供一个搜索界面,可以声称自己没有进行内容传播。百度就是这样的,你用百度能搜索到很多黄色内容吧,但是百度负责吗?百度不仅不负责,甚至还基于你的搜索给你提供带诈骗性质的广告,魏则西的故事这个大家都知道吧。

磁力搜索也可以利用百度这一套,如果涉及到版权等侵权内容还可以利用 避风港原则避免法律风险。

磁力搜索开源的程序有很多,大部分是用php,python开发磁力搜索脚本,把数据保存到mysql数据,然后利用sphix建立索引,最好开发一个web界面,就能实现一个完整的磁力搜索网站了。

安装ssbc

github上能找到的完整的磁力搜索网站源码就只有 ssbc了,大部分都是提供磁力搜索引擎,没有web界面和建立数据库索引的部分,这篇文章就介绍怎么基于ssbc搭建自己的磁力搜索网站。

环境检测

ssbc的DHT磁力搜索源码是使用python开发的,运行 python -v检测python的版本,确保安装了2.7版本的python。ubuntu 16.06默认安装的就是python2.7,如果你使用的是其他linux发行版,可以自行安装python。

ssbc源码托管在github上,如果你想用git方式下载源码,需要先安装git客户端。

下载源码和安装依赖

  wget https://github.com/78/ssbc/archive/master.zip
sudo apt-get -y install zip
unzip master.zip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
cd ssbc-master
pip install -r requirements.txt

安装mysql数据库

ubuntu16.04默认使用的是mysql5.7的源,经过测试,ssbc的源码在mysql5.7上运行正常,如果是ubuntu14.04,你也可以用 sudo apt-get install mysql-server安装mysql5.5版本,这个是ssbc推荐的mysql版本。

ssbc的默认密码配置是root和空密码,使用空密码不安全,你需要修改源码中的数据库配置文件来完成密码的修改,使用github的基于项目的搜索功能,访问 https://github.com/78/ssbc/search?utf8=%E2%9C%93&q=root可以看到所有需要配置数据密码的脚本,根据需要自行修改。

创建数据库

  mysql -uroot -p
create database ssbc default character set utf8;
quit

启动DHT爬虫

安装源码依赖和数据库之后就可以开始爬取种子信息了,

  cd ssbc-master/workers
python simdht_worker.py

有些vps服务器会限制dht爬虫,因为会造成大量的网络请求,拖慢整个服务器的网速,如果运行上述的脚本10分钟左右在控制台能看到脚本打印爬取到的种子信息,说明你的爬虫运行正常,可以把爬虫进程关闭掉,然后以后台进程的方式重新启动。

  nohup python simdht_worker.py > /tmp/dht.log 2>&1 &

这样启动还是不够安全,当服务器重启之后需要重新手动启动爬虫进程,如果你有能力,可以自己写一个 worker.service,把爬虫程序安装成系统服务,然后在系统启动的过程中自动启动你的爬虫程序。

安装sphinx索引

有了前面爬取的种子信息,当种子数很多的时候,直接使用mysql的搜索速度是很慢的,这个时候就需要使用第三方索引程序来提高种子搜索的响应速度,ssbc使用的是sphinx,其实简单改造一下也能使用elasticsearch或者solr等java开源索引框架,修改index_worker.py这个文件就行。

  sudo apt-get install -y libmysqlclient-dev python-dev gcc sphinxsearch

这个过程中可能会遇到一些问题,基本上都是缺少sphinxsearch的一些依赖库,如果自己不会解决可以给我留言或者在 stackoverflow上提问,肯定有很多类似的问题,参考一些就能解决这些安装依赖的问题了。

配置sphinx目录和权限

  mkdir  -p  /data/bt/index/db /data/bt/index/binlog  /tem/downloads
chmod  755 -R /data
chmod  755 -R /tem

生成索引,这一步还只是使用sphinx自带的命令生成索引,还没有索引前面爬取的种子信息

  indexer -c sphinx.conf --all
searchd --config ./sphinx.conf

索引种子信息

  cd ssbc-master
python index_worker.py

运行10分钟左右,如果程序没有报错就可以和爬虫程序一样,把这个索引程序运行放在后台运行

  nohup python index_worker.py > /tmp/index.log 2>&1 &

启动web服务

为了让别人使用你的磁力搜索服务,还需要安装一个web服务,提供基于html的搜索入口,整个磁力搜索网站就算搭建完成了。

  python manage.py makemigrations
python manage.py migrate
nohup python manage.py runserver 0.0.0.0:80 >/tmp/server.log 2>&1 &

ssbc的web是基于python的django框架开发的,前面两个命令是django提供的进行网站迁移的命令,如果是第一次安装,运行这两个命令没有任何效果,不过如果你启动web服务遇到问题,还是建议你把这两个命令添加上去。

除了直接使用80端口,还可以配置nginx等前端代理,流量大还可以做负载均衡,这些留待以后探索。

增加后台管理员

  cd ssbc-master
python manage.py createsuperuser

根据提示:

  • 输入管理员用户名
  • 输入管理员邮箱
  • 输入管理员密码
  • 确认密码,完成
  • 管理员登录地址: http://IP/admin

网上有一个ssbc的centos安装教程,centos和ubuntu的安装过程很不一样,所以就写了一个基于ubuntu 16.04的安装教程。

示例网站

最后贴上根据上述教程安装的磁力搜索站,点击 demo访问示例网站,本网站纯属教学意义。

相关 [ubuntu16 包菜 dht] 推荐:

ubuntu16.04安装手撕包菜DHT磁力站点源码

- - 蓝猫的博客 - 分享前端开发经验和教程
现在的磁力搜索站点非常多,其实这都是跟百度学来的,在大陆是不能建设网站传播非法内容的,被发现轻则查水表,重则进小黑屋保你衣食无忧(你懂的),但是提供搜索技术就不一样,第一你不存储任何实质性的内容,第二你只是提供一个搜索界面,可以声称自己没有进行内容传播. 百度就是这样的,你用百度能搜索到很多黄色内容吧,但是百度负责吗.

手撕包菜磁力搜索引擎的开源说明

- - Xiaoxia[PG]
已经一年半载没有写博客了,搞得上来不知道写些什么. 博客上的内容还时不时有人评论,大部分我还是会一一回复的. 有些人会关注我的博客用什么主机,我的博客现在是用Linode的主机,因为现在很便宜,而且配置不差. 另外比较多的是问手撕包菜的源代码能否提供,能否出售. 今天我写这个文章就是把手撕包菜的网站开源了,包括网站页面,DHT爬虫和搜索引擎相关部分.