下载类的网站应该是大家经常用到的工具了,特别是一些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 条评论