全球主机交流论坛

标题: 手撕包菜(DHT磁力链源码) 2015.7月版 安装教程 [打印本页]

作者: wenguonideshou    时间: 2015-8-2 12:12
标题: 手撕包菜(DHT磁力链源码) 2015.7月版 安装教程
本帖最后由 wenguonideshou 于 2015-12-10 13:32 编辑

群253524174 里面有很多玩搜片大师、手撕包菜的MJJ!



环境:
Vultr日本    2G内存  Centos7 x64   有公网IP
DO    1G内存      Centos7 x64     有公网IP
Linode    1G内存      Centos7 x64     有公网IP
[Vultr日本1 G内存在索引时报错:FATAL: out of memory (unable to allocate 1278738432 bytes)],可能是Vultr的VPS没有swap的原因
经测试,采集到的英文资源居多。

一.确认python版本,获取ssbc源代码,关闭防火墙
1.环境检测(Ssbc当前版本是基于django1.8.1开发,所需python环境为python2.7.5以上。)
[root@localhost ~]# python -V          //执行python -V即可获取当前版本
Python 2.7.5
[root@localhost ~]# systemctl stop firewalld.service  //关闭firewall防火墙
[root@localhost ~]# systemctl disable firewalld.service    //禁止firewall防火墙开机启动
[root@localhost ~]# systemctl stop iptables.service   //关闭iptables防火墙
[root@localhost ~]# systemctl disable iptables.service    //禁止iptables防火墙开机启动
2.获取ssbc安装包并解压
[root@localhost ~]# wget https://github.com/78/ssbc/archive/master.zip
[root@localhost ~]# yum -y install unzip
[root@localhost ~]# unzip master.zip
解压后你会发现在/root目录下有个文件夹ssbc-master
二.安装MariaDB,创建数据库
1.安装数据库及所需环境
[root@localhost ~]# yum -y install gcc
[root@localhost ~]# yum -y install gcc-c++
[root@localhost ~]# yum -y install python-devel
[root@localhost ~]# yum -y install mariadb
[root@localhost ~]# yum -y install mariadb-devel
[root@localhost ~]# yum -y install mariadb-server
[root@localhost ~]# cd ssbc-master
[root@localhost ssbc-master]# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
[root@localhost ssbc-master]# python get-pip.py
[root@localhost ssbc-master]# pip install -r requirements.txt
2.创建ssbc数据库
[root@localhost ssbc-master]# systemctl start  mariadb.service  //启动数据库
[root@localhost ssbc-master]# mysql -uroot -p
Enter password: (回车即可)
MariaDB [(none)]> create database ssbc default character set utf8;
MariaDB [(none)]> quit;  //创建成功后退出
三.Web服务器设置并启动
[root@localhost ssbc-master]# python manage.py makemigrations
[root@localhost ssbc-master]# python manage.py migrate
[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &          //启动网站并在后台运行
按回车键继续
浏览器输入http://IP,网站能打开
四.安装Sphinx
[root@localhost ssbc-master]# yum -y install unixODBC unixODBC-devel postgresql-libs
[root@localhost ssbc-master]# wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel7.x86_64.rpm
[root@localhost ssbc-master]# rpm -ivh sphinx-2.2.9-1.rhel7.x86_64.rpm
五. 建立文件夹
创建以下文件夹并赋予755权限
[root@localhost ssbc-master]#
mkdir  -p  /data/bt/index/db /data/bt/index/binlog  /tem/downloads
[root@localhost ssbc-master]# chmod  755 -R /data
[root@localhost ssbc-master]# chmod  755 -R /tem
六. 生成索引
[root@localhost ssbc-master]# systemctl restart mariadb.service  //重新启动Mariadb
[root@localhost ssbc-master]# systemctl enable mariadb.service  //设置mariadb开启自启动
[root@localhost ssbc-master]# indexer -c sphinx.conf --all (all 前面是空格减号减号)
[root@localhost ssbc-master]# searchd --config ./sphinx.conf  (config前是空格减号减号)
确定没有报错,继续下一步
七. 开启爬虫(workers目录下)
[root@localhost ssbc-master]# cd workers
1.爬虫运行
执行:[root@localhost workers]# python simdht_worker.py     等2分钟出现数据之后CTRL+C停止
执行:[root@localhost workers]# nohup python simdht_worker.py >/dev/zero &  让爬虫在后台运行
按回车键继续
2.入库索引
执行:[root@localhost workers]# python index_worker.py      等待10分钟出现数据后CTRL+C停止
执行:[root@localhost workers]# nohup python index_worker.py >/dev/zero &   让索引在后台运行
按回车键继续
3.增加后台管理员
[root@localhost workers]#cd ..
[root@localhost ssbc-master]# python manage.py createsuperuser
输入管理员用户名
输入管理员邮箱
输入管理员密码
确认密码,完成
管理员登录地址:http://IP/admin


测试效果:
搜索中文英文关键字均正常

(, 下载次数: 9)

(, 下载次数: 4)


附:
去除搜索页 右下角广告
[root@localhost ssbc-master]# cd web/static/js
[root@localhost js]# vi ssbc.js   找到如下3行,在前面添加//进行注释,保存
//        document.write('<script src="http://v.6dvip.com/ge/?s=47688"><\/script>');
//            document.writeln("<script language=\"JavaScript\" type=\"text/javascript\" src=\"http://js.6dad.com/js/xiaoxia.js\"></script>");
//           document.writeln("<script language=\"JavaScript\" type=\"text/javascript\" src=\"http://js.ta80.com/js/12115.js\"></script>");

可能出现的故障:
1.搜索中文报错
'ascii' codec can't encode characters in position 42-43: ordinal not in range(128)
(, 下载次数: 1)
解决办法:
如果是centos7系统,修改/usr/lib64/python2.7/site.py
vi  /usr/lib64/python2.7/site.py
在import sys下添加2行:
reload(sys)
sys.setdefaultencoding('utf8')


2.爬虫运行时 可能会遇到如下问题:
Python and Django OperationalError (2006, 'MySQL server has gone away')
解决方法:
http://stackoverflow.com/questions/14163429/python-and-django-operationalerror-2006-mysql-server-has-gone-away
/etc/my.cnf 在最后一行的下面添加
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 512M

常见问题:
1.必须centos7吗?
非常建议使用centos7,centos6可能会有意想不到的错误
2.怎么查看入库的文件?
登录管理员后台,点击 Hashs
3.怎么查看每天入库了多少文件,以便清楚入库效率?
登录管理员后台,点击 Status reports
4.如何确认web服务器、采集、入库正在运行?
ps -ef|grep python
结果里面有
python manage.py runserver 0.0.0.0:80  
python simdht_worker.py  
python index_worker.py
即表示正在运行。
作者: VMSir    时间: 2015-8-2 12:18
我有个磁力站  人家现在投诉侵权,要不要管他呢?
作者: Dk2014    时间: 2015-8-2 12:22
干货,顶顶
作者: 魑魅魍魉之主    时间: 2015-8-2 12:27
666非常感谢,等会试一试。
作者: cclylycc    时间: 2015-8-2 12:33
待会儿去试试
作者: qxwo    时间: 2015-8-2 12:35
本帖最后由 qxwo 于 2015-8-2 12:39 编辑

演示地址:ds.9zf.net:8002 15刀的DS,跑久了会出现会出各种错误,mysql崩溃,超时,CPU占用100%+
centos6.5
作者: awai    时间: 2015-8-2 12:37
mark
作者: Cokid    时间: 2015-8-2 12:37
磁力站满大街了
作者: jiji262    时间: 2015-8-2 12:37
哪里下载ssbc
作者: 气味    时间: 2015-8-2 12:44
完全看不懂~
作者: wenguonideshou    时间: 2015-8-2 12:47
qxwo 发表于 2015-8-2 12:35
演示地址:ds.9zf.net:8002 15刀的DS,跑久了会出现会出各种错误,mysql崩溃,超时,CPU占用100%+
centos6.5 ...

是的,手撕包菜的采集效率、采集内容 完全和搜片大师没得比,完全没有发手撕包菜教程的动力
作者: liu    时间: 2015-8-2 12:48
ssbc是什么
作者: 604542720    时间: 2015-8-2 13:01

作者: ahao358    时间: 2015-8-2 13:23
谢谢楼主的教程,先收藏了!
作者: cclylycc    时间: 2015-8-2 13:28
[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &          //启动ssbc
浏览器输入http://IP,网站能打开

这一段的时候一直处于:

[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &          //启动ssbc
[root@www ssbc-master]# nohup: ignoring input and redirecting stderr to stdout
这样就不动了
作者: wenguonideshou    时间: 2015-8-2 13:49
cclylycc 发表于 2015-8-2 13:28
[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &          //启 ...

nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &
没有反应才是正常的

按回车键 运行下面的命令。
作者: cclylycc    时间: 2015-8-2 13:56
wenguonideshou 发表于 2015-8-2 13:49
nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &
没有反应才是正常的

但是网站却不能打开
作者: wenguonideshou    时间: 2015-8-2 14:01
cclylycc 发表于 2015-8-2 13:56
但是网站却不能打开


ps -ef|grep python
里面有这个吗?
python manage.py runserver 0.0.0.0:80

防火墙关闭没有?


作者: cclylycc    时间: 2015-8-2 14:08
wenguonideshou 发表于 2015-8-2 14:01
ps -ef|grep python
里面有这个吗?
python manage.py runserver 0.0.0.0:80

[root@www ssbc-master]# ps -ef|grep python
root      1563     1 27 02:00 ?        00:04:23 python simdht_worker.py
root      2215  2094  0 02:16 pts/0    00:00:00 grep --color=auto python

防火墙在执行命令的时候:

[root@www ssbc-master]# systemctl stop firewalld.service
Failed to issue method call: Unit firewalld.service not loaded.
作者: wenguonideshou    时间: 2015-8-2 15:25
cclylycc 发表于 2015-8-2 14:08
[root@www ssbc-master]# ps -ef|grep python
root      1563     1 27 02:00 ?        00:04:23 python  ...

根据你这边的反馈,修正了下教程
作者: guonning    时间: 2015-8-2 15:28
非常感谢
作者: ysdj2007    时间: 2015-8-2 16:20
不知道是什么,先收藏了再说。
作者: zlpd    时间: 2015-8-2 16:51
执行完 pip install -r requirements.txt 出现以下错误
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-A7hQH_/MySQL-python
作者: hostloced    时间: 2015-8-2 16:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: fansfan    时间: 2015-8-2 17:01
wenguonideshou 发表于 2015-8-2 12:47
是的,手撕包菜的采集效率、采集内容 完全和搜片大师没得比,完全没有发手撕包菜教程的动力 ...

搜片大师爬的是迅雷的种子库啊 可以从网络连接中查看到  不是DHT网络
反正各有优劣势吧,去年某段时间 连续好几个月 连接不到迅雷种子库 一个数据都没有。。
总之各有优劣吧。
作者: xk708    时间: 2015-8-2 17:02
完全看不懂~
作者: ericls    时间: 2015-8-2 17:11
楼主确定不用 uwsgi么
作者: sunsea    时间: 2015-8-2 17:30
这个建好之后,如何备份呢?
作者: wenguonideshou    时间: 2015-8-2 17:52
ericls 发表于 2015-8-2 17:11
楼主确定不用 uwsgi么

确定没用uwsgi
作者: 6911054    时间: 2015-8-2 18:36
收藏备用
作者: 天也就这么大    时间: 2015-8-2 19:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: 孩子他爹    时间: 2015-8-2 20:05
顶顶,感谢教程分享!
作者: kougui    时间: 2015-8-3 11:49
网站域名怎么绑定?
作者: sotan    时间: 2015-8-3 13:27
浏览器输入地址,网站能打开

这一步为什么打开的是阿帕奇的测试123页面啊...
作者: gaoji.me    时间: 2015-8-3 13:33
天也就这么大 发表于 2015-8-2 19:29
不如搜片大师爬的快啊

一小时爬了1500
作者: 孩子他爹    时间: 2015-8-3 13:33
搜索中文报错怎么解决啊!
作者: sunzetu    时间: 2015-8-3 14:05
gaoji.me 发表于 2015-8-3 13:33
一小时爬了1500

肯定会越爬越慢。
作者: 天也就这么大    时间: 2015-8-3 14:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 孩子他爹    时间: 2015-8-3 15:42
'ascii' codec can't encode characters in position 42-43: ordinal not in range(128)

作者: 孩子他爹    时间: 2015-8-3 17:45
请问这个数据库在什么地方呢?有人有八百多万的磁力数据导入?
作者: 孩子他爹    时间: 2015-8-3 21:29
UnicodeEncodeError
作者: wenguonideshou    时间: 2015-8-4 08:49
本帖最后由 wenguonideshou 于 2015-8-7 12:51 编辑
孩子他爹 发表于 2015-8-3 15:42
'ascii' codec can't encode characters in position 42-43: ordinal not in range(128)


解决办法 http://blog.sina.com.cn/s/blog_64a3795a01018vyp.html  

vi   search/timermiddleware.py
在开头加上
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

800w数据的应该是搜片大师的数据库
作者: p1985    时间: 2015-8-4 10:12
在管理后台看,爬了6000多文件就不爬了,怎么回事

ssh看运行也正常呀
[root@vultr ~]# ps -ef|grep python
root       385     1  0 Aug03 ?        00:00:06 /usr/bin/python -Es /usr/sbin/tu                                      ned -l -P
root      6201  6165  0 02:11 pts/0    00:00:00 grep --color=auto python
root      9183     1  0 Aug03 ?        00:00:00 python manage.py runserver 0.0.0                                      .0:80
root      9189  9183  0 Aug03 ?        00:08:50 /usr/bin/python manage.py runser                                      ver 0.0.0.0:80
root      9595     1 20 Aug03 ?        03:45:41 python simdht_worker.py
root     11392     1  0 Aug03 ?        00:00:02 python index_worker.py
[root@vultr ~]#


作者: skyidea    时间: 2015-8-4 10:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: wenguonideshou    时间: 2015-8-4 10:29
p1985 发表于 2015-8-4 10:12
在管理后台看,爬了6000多文件就不爬了,怎么回事

ssh看运行也正常呀

进入workser目录下单独运行python simdht_worker.py
这样就能可视化的看到爬虫采集进度


如果爬不到,基本上就是你的VPS的网络问题

其实这款放出来的源码 他的爬虫代码有不少bug  只算得上beta版,我敢肯定不是他自用的爬虫
作者: wenguonideshou    时间: 2015-8-4 10:31
sotan 发表于 2015-8-3 13:27
浏览器输入地址,网站能打开

这一步为什么打开的是阿帕奇的测试123页面啊... ...

yum -y remove httpd
apache会占用80端口,是必须坚决卸载的
作者: skyidea    时间: 2015-8-4 10:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: p1985    时间: 2015-8-4 10:36
进入workser目录下单独运行python simdht_worker.py

Traceback (most recent call last):
  File "simdht_worker.py", line 474, in <module>
    dht = DHTServer(master, "0.0.0.0", 6881, max_node_qsize=200)
  File "simdht_worker.py", line 171, in __init__
    self.ufd.bind((self.bind_ip, self.bind_port))
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use

这是什么情况
作者: wenguonideshou    时间: 2015-8-4 10:41
p1985 发表于 2015-8-4 10:36
进入workser目录下单独运行python simdht_worker.py

Traceback (most recent call last):

kill -9 9595  //需要先杀掉爬虫再运行爬虫
python simdht_worker.py
作者: sotan    时间: 2015-8-5 19:37
[root@kassc workers]# python index_worker.py
Traceback (most recent call last):
  File "index_worker.py", line 24, in <module>
    dst_conn = mdb.connect(DST_HOST, DST_USER, DST_PASS, 'rt_main', port=9306, charset='utf8')
  File "/usr/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (111)")

作者: wenguonideshou    时间: 2015-8-5 20:35
sotan 发表于 2015-8-5 19:37
[root@kassc workers]# python index_worker.py
Traceback (most recent call last):
  File "index_worker ...

手撕包菜的数据库 你设置了密码 ?
作者: sotan    时间: 2015-8-5 21:00
wenguonideshou 发表于 2015-8-5 20:35
手撕包菜的数据库 你设置了密码 ?

没有设置密码,请问重启过服务器之后要运行哪几个命令呢?
作者: wenguonideshou    时间: 2015-8-5 21:05
sotan 发表于 2015-8-5 21:00
没有设置密码,请问重启过服务器之后要运行哪几个命令呢?

那就不清楚是什么原因导致的了,我是没有遇到过这个问题。
重启主机后 运行
nohup python manage.py runserver 0.0.0.0:80 >/dev/zero &
cd workers
nohup python simdht_worker.py >/dev/zero &
nohup python index_worker.py >/dev/zero &
这3个是网站正常运转的核心。
作者: tyucom    时间: 2015-8-6 08:26
我也开了个 DO 2G的 在测试。

也出现爬虫 不正常问题。

最后我使用一个sh脚本,让他每小时执行一次杀死python 进程,再启动他们,也就是楼上说的3个。就再也不怕他们不正常工作了。


不过,这程序太占CPU了,  负载5以上,  一般VPS会被限制滥用的,  DO就好,任你。

现在 137700条, 明天这个时候再看多少条就知道一天能采多少条。

一天采个10万条,应该可行。基本是E文,
作者: 永盛    时间: 2015-8-6 08:33
搜片大师爬的是迅雷的种子库啊 可以从网络连接中查看到  不是DHT网络
反正各有优劣势吧,去年某段时间 连续好几个月 连接不到迅雷种子库 一个数据都没有。。
总之各有优劣吧。
作者: liu    时间: 2015-8-6 10:16
mark
作者: tyucom    时间: 2015-8-7 08:47
隔一天再看,,  312322 hashs

看来一天采了 17万,   可惜基本都是英文,        

不知  搜片大师  是不是也英文资源居多?
作者: wenguonideshou    时间: 2015-8-7 10:31
tyucom 发表于 2015-8-7 08:47
隔一天再看,,  312322 hashs

看来一天采了 17万,   可惜基本都是英文,        

搜片 基本都是中文
作者: 张大牛    时间: 2015-8-7 10:51
MARK
作者: egeo    时间: 2015-8-7 11:20
顶一顶 我也去试试看
作者: egeo    时间: 2015-8-7 11:20
顶一顶 我也去试试看
作者: _jerryjee    时间: 2015-8-23 16:34
原来要找的东西在这里,谢谢!
作者: darksheen    时间: 2015-8-23 16:39
不明觉厉




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