前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自建磁力链搜索网站做老司机

自建磁力链搜索网站做老司机

作者头像
用户1202364
发布2018-07-09 17:34:42
7.7K0
发布2018-07-09 17:34:42
举报
文章被收录于专栏:小车博客小车博客
《自建磁力链搜索网站做老司机》
《自建磁力链搜索网站做老司机》

简介 下载类的网站应该是大家经常用到的工具了,特别是一些 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 地址:https://github.com/wenguonideshou/zsky

複製代碼

yum -y install git git clone https://github.com/wenguonideshou/zsky.git cd zsky sh zsky.sh

原安装及环境配置

複製代碼

#下载源文件(到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

使用说明

Quote:

安装脚本执行过程中会提示输入绑定的域名、数据库密码、管理员用户名、密码、邮箱,输入后耐心等待即可访问 http://域名 后台地址 http://域名/admin 程序默认数据库密码123456 修改simdht_worker.py里的max_node_qsize的大小调节爬取速度(队列大小) 执行 python manage.py init_db    创建表/平滑升级表结构 执行 python manage.py create_user 创建管理员 执行 python manage.py changepassword 修改管理员密码 执行 systemctl start gunicorn  启动网站 执行 systemctl start mariadb  启动数据库 执行 systemctl status mariadb  查看数据库运行状态 执行 systemctl restart mariadb  重新启动数据库 执行 systemctl status gunicorn  查看gunicorn运行状态 执行 systemctl restart gunicorn  重新启动网站 执行 systemctl restart indexer  手动重新索引 执行 systemctl start searchd  开启搜索进程 执行 systemctl status searchd  查看搜索进程运行状态 执行 systemctl restart searchd  重新启动搜索进程 Q:如何修改站点名? A:修改manage.py里的常量sitename Q:如何修改地图里的域名? A:修改manage.py里的常量domain Q:如何实现远程主机反向代理本机的程序? A:修改本机的/etc/systemd/system/gunicorn.service其中的127.0.0.1:8000修改为0.0.0.0:8000然后执行systemctl daemon-reload,然后执行systemctl restart gunicorn,本机不开启nginx,远程主机开启nginx、配置反向代理、绑定域名即可,nginx的配置文件参考程序内的nginx.conf 。 Q:如何限制/提高爬取速度? A:修改simdht_worker.py里的max_node_qsize=后面的数字,越大爬取越快,越小爬取越慢 Q:如何修改数据库密码? A:执行mysqladmin -uroot -p password 123456!@#$%^ //将提示输入当前密码,123456!@#$%^是新密码 Q:修改数据库密码后怎么修改程序里的配置? A:修改manage.py里的mysql+pymysql://root:密码@127.0.0.1、修改manage.py里的DB_PASS、修改simdht_worker.py里的DB_PASS、修改sphinx.conf里的sql_pass Q:怎么确定爬虫是在正常运行? A:执行 ps -ef|grep -v grep|grep simdht 如果有结果说明爬虫正在运行 Q:更新manage.py/模板后怎么立即生效? A:执行 systemctl restart gunicorn 重启gunicorn Q:为什么首页统计的数据小于后台的数据? A:在数据量变大后,索引将占用CPU 100%,非常影响用户访问网站,为了最小程度减小此影响 默认设置为每天早上5点更新索引,你想现在更新爬取结果的话,手动执行索引 systemctl restart indexer ,需要注意的是,数据量越大 索引所耗费时间越长 Q:如何查看索引是否成功? A:执行 systemctl status indexer 可以看到索引记录 Q:觉得索引速度慢,如何加快? A:修改sphinx.conf里面的mem_limit = 512M ,根据你的主机的内存使用情况来修改,数值越大索引越快,最大可以设置为2048M Q:如何确定搜索进程是否正常运行 A:执行 systemctl status searchd ,如果是绿色的running说明搜索进程完全正常 Q:如何备份数据库? A:执行 mysqldump -uroot -p zsky>/root/zsky.sql 导出数据库 //将提示输入当前密码,数据库导出后存在/root/zsky.sql Q:数据库备份后,现在重新安装了程序,如何导入旧数据? A:执行 mysql -uroot -p zsky</root/zsky.sql    //假设你的旧数据库文件是/root/zsky.sql,将提示输入当前密码,输入后耐心等待 Q:如何迁移到新主机? A:备份数据库(方法见上面)→ 程序拷贝到新主机 → 安装程序 → 导入数据库(方法见上面)→ 重新索引 Q:我以前使用的搜片大师/手撕包菜,可以迁移过来吗? A:程序在开发之初就已经考虑到从这些程序迁移过来的问题,所以你不用担心,完全可以无缝迁移。 Q:网站经常收到版权投诉,有没有好的解决办法? A:除了删除投诉的影片数据外,你可以使用前端Nginx、后端gunicorn+爬虫+数据库+索引在不同主机上的模式,甚至多前端模式,这样 即使前端被主机商强行封机,也能保证后端数据的安全。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年3月4日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 複製代碼
  • 複製代碼
  • Quote:
相关产品与服务
数据库备份服务
数据库备份服务(Database Backup Service,简称 DBS)是为用户提供连续数据保护、低成本的备份服务。数据库备份拥有一套完整的数据备份和数据恢复解决方案,具备实时增量备份以及快速的数据恢复能力,它可以为多种部署形态的数据库提供强有力的保护,包括企业 IDC 数据中心、其他云厂商数据库及腾讯公有云数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档