#源码推荐# “纸上烤鱼”:自建磁力搜索网站

下载类的网站应该是大家经常用到的工具了,特别是一些BT,PT一类的网站,最近几年比较火的小型站点一般都是磁力搜索类的,但很多网站鱼龙混杂,广告横生(网站挂广告无可厚非,但是时不时弹出令人尴尬的内容就有点儿…)。最近看到网友wenguonideshou制作并修改的源码,叫ZSKY,虽然貌似没给正式的命名,但是从demo来看,应该是“纸上烤鱼”的缩写,这个源码实际上是改自另一款很出名的源码SSBC(手撕包菜),但手撕包菜的使用说明网上一直只是流传着一些坊间的版本,作者似乎也没有过多的在维护这个项目(2年前的更新了),不过好在这次网友的修改版似乎更通俗易懂,其他不多说了,直接附上相关的说明(注:这类磁力搜索的网站实际上是利用Python爬去DHT网络中的信息,因此,基本不需要手动维护内容)

磁力搜索网站经常会检索到版权敏感的内容,请大家尊重版权所有者,将侵权内容删除。微魔呼吁:保护知识产权,人人有责!

官方说明:
在ssbc爬虫的基础上修复,现在可以7*24爬取的爬虫,修改了爬取策略,只入库音乐、电影、电子书。python实现的磁力搜索网站,代码比较烂,请轻喷!
搜索排行榜、浏览排行榜、DMCA投诉的功能未完成(其实是不想做)
和ssbc相比,没使用sphinx进行索引,而是用redis缓存访问页面,使用jieba分词,比sphinx的中文分词效果好。
模板在templates目录,模板引擎是jinja2(非常易读),编写自己的专属模板非常方便,中文版文档 http://docs.jinkan.org/docs/jinja2/ 。
后台可以直接搜索、删除DMCA投诉的关键字,管理首页推荐关键字、用户搜索记录、查看每天爬取的资源数量、管理后台用户。
修改数据库密码后请修改manage.py里面的mysql+pymysql://root:后面的内容和simdht_work.py里面的DB_PASS
实验环境:centos7 python2.7

安装及环境配置

#下载源文件(到Github找最新版下载)
tar zxvf zsky.tar.gz
systemctl stop firewalld.service  
systemctl disable firewalld.service   
systemctl stop iptables.service  
systemctl disable iptables.service  
setenforce 0  
sed -i s/"SELINUX=enforcing"/"SELINUX=disabled"/g  /etc/sysconfig/selinux
#关闭selinux
cat << EOF > /etc/sysctl.conf
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
EOF
/sbin/sysctl -p /etc/sysctl.conf
/sbin/sysctl -w net.ipv4.route.flush=1
echo ulimit -HSn 65536 >> /etc/rc.local
echo ulimit -HSn 65536 >>/root/.bash_profile
ulimit -HSn 65536
#优化内核参数,优化打开文件数
cd zsky
yum -y install wget gcc gcc-c++ python-devel mariadb mariadb-devel mariadb-server
yum -y install epel-release python-pip redis
pip install -r requirements.txt
pip install redis
systemctl start  mariadb.service 
systemctl enable mariadb.service
systemctl start redis.service
systemctl enable redis.service
mysql -uroot  -e"create database zsky default character set utf8mb4;" 
mysql -uroot  -e"set global interactive_timeout=31536000;set global wait_timeout=31536000;set global max_allowed_packet = 64*1024*1024;set global max_connections = 10000;" 
python manage.py init_db
#建表
python manage.py create_user
#按照提示输入用户名、密码、邮箱
nohup gunicorn -k gevent --access-logfile zsky.log --error-logfile zsky_err.log  manage:app -b 0.0.0.0:80 --reload>/dev/zero 2>&1&
#开启网站访问,访问日志是当前目录下zsky.log,错误日志是当前目录下zsky_err.log
#如果不想要日志 就运行下面这条命令
#nohup gunicorn -k gevent manage:app -b 0.0.0.0:80 --reload>/dev/zero 2>&1&  
nohup python simdht_worker.py  2>&1&
#开启爬虫并写日志,如果爬虫有问题请提交日志文件nohup.out给我

现在应该能访问http://IP 了,解析域名即可完成部署
后台地址http://IP/admin

#开机自启动
chmod +x /etc/rc.d/rc.local
echo "systemctl start  mariadb.service" >> /etc/rc.d/rc.local
echo "systemctl start  redis.service" >> /etc/rc.d/rc.local
echo "cd /root/zsky" >> /etc/rc.d/rc.local
echo "nohup python simdht_worker.py >/dev/zero 2>&1&" >> /etc/rc.d/rc.local
echo "nohup gunicorn -k gevent manage:app -b 0.0.0.0:80 --reload>/dev/zero 2>&1&" >> /etc/rc.d/rc.local

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

1 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注