今天分享的是一个大佬的开源爬虫项目,利用大佬发布的程序即可轻松可以爬取 mm131、mmjpg、妹子图等各大美女图片站,然后下载图片后,自动帮你发布并搭建一个属于你自己的图片站!
说明
项目地址:https://git.coding.net/zxy_coding/94imm.git
环境要求:Python 3.6、Mysql 5.5+、Nginx/Apache(非必需),本文只说 CentOS 6/7、Debian 8/9。
这里使用宝塔和手动 2 种方法安装,如果你需要快速上手就使用手动安装,想操作方便就宝塔,自行选择。
安装环境
1、使用宝塔安装
#CentOS系统 wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh #Debian系统 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
安装完成后,进入面板,点击左侧软件管理,然后安装 Mysql 5.5+、Nginx(如果你使用域名的话,就需要安装)。
然后点击左侧数据库 – 添加数据库,设置好数据库信息。
2、手动安装环境
提示:为了简单,这里采用Mysql 5.7+Caddy环境,这里也是,如果你需要使用到域名才安装Caddy。
这里博主是用的 Mysql 5.7,如果内存很低,5.7 跑起来会有点吃力,建议增加点 Swap 虚拟内存 →传送门。
安装 Mysql 5.7:
#CentOS 6系统 rpm -ivh http://repo.mysql.com/mysql57-community-release-el6.rpm yum install mysql-community-server -y service mysqld start chkconfig mysqld on #CentOS 7系统 rpm -ivh http://repo.mysql.com/mysql57-community-release-el7.rpm yum install mysql-community-server -y systemctl start mysql systemctl enable mysql #Debian 8系统 echo 'deb http://repo.mysql.com/apt/debian/ jessie mysql-5.7 deb-src http://repo.mysql.com/apt/debian/ jessie mysql-5.7' >/etc/apt/sources.list.d/mysql.list wget https://repo.mysql.com/RPM-GPG-KEY-mysql apt-key add RPM-GPG-KEY-mysql apt update #安装的时候会要你输入数据库密码 apt install mysql-server -y #Debian 9系统 echo 'deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7 deb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7' >/etc/apt/sources.list.d/mysql.list wget https://repo.mysql.com/RPM-GPG-KEY-mysql apt-key add RPM-GPG-KEY-mysql apt update #安装的时候会要你输入数据库密码 apt install mysql-server -y
这里 CentOS 安装 MySQL 5.7 的时候会生成一个随机密码,使用命令查看:
grep "password" /var/log/mysqld.log #大致信息,******为密码 [Note] A temporary password is generated for root@localhost: ******
然后 CentOS 还需要修改数据库密码:
#登录数据库,输入你上面看到的密码 mysql -u root -p #稍微设置密码难度下,不然修改的时候,密码必须很复杂才行 mysql> set global validate_password_policy=0; mysql> set global validate_password_length=4; #修改密码为moewah mysql> set password=password("moewah"); #退出数据库 mysql> exit; #CentOS 6重启数据库 service mysqld restart #CentOS 7重启数据库 systemctl restart mysql
创建新的数据库,使用命令:
#创建94imm数据库,moewah为数据库密码,自行修改 mysql -uroot -pmoewah mysql > create database 94imm; #退出 mysql > exit;
此时 Mysql 5.7 算是安装完成了。
安装 Caddy: <pre class="prettyprint wow zoomIn"> wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh #备用地址 wget -N --no-check-certificate https://www.moewah.com/source/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
搭建站点
1、安装 Python3
为了避免下面依赖安装出错,这里就不使用软件包安装 Python3 了,直接就使用脚本安装,使用命令:
#CentOS系统 wget https://www.moewah.com/source/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh #Debian系统 wget https://www.moewah.com/source/Debian_Python3.6.sh && sh Debian_Python3.6.sh
2、搭建站点
#下载源码 git clone https://git.coding.net/zxy_coding/94imm.git #安装依赖 cd 94imm pip3 install -r requirements.txt #导入目录的数据库文件,这里数据库名94imm,用户名和密码root、moewah,请自行修改 mysql -uroot -pmoewah 94imm < silumz.sql #编辑配置文件 nano silumz/settings.py
填上你的数据库信息,大致如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '94imm', 'USER': 'root', 'PASSWORD': 'moewah', 'HOST': '127.0.0.1', 'PORT': '3306', } }
再使用 Ctrl+x、y 保存退出。
编辑启动配置文件,使用命令:
nano uwsgi.ini
然后看着改,大致修改如下:
#配置文件默认是将源码放在root目录,如果在其他目录可以自行修改 #如果你要是用ip访问,将127.0.0.1:8000改成http=0.0.0.0:8000,端口也可以改
启动程序:
uwsgi --ini uwsgi.ini
此时站点地址为 ip:8000。
3、域名反代
提示:不需要域名的跳过该步骤
宝塔面板设置:
然后点击左侧网站 – 添加站点,填上你的域名,其他默认,然后点击域名设置 – 反向代理,url 设置 http://127.0.0.1:8000 即可。然后打开你的域名就可以看到站点了。
Caddy 设置:
#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!且会自动给你配置ssl证书 echo "www.moewah.com { gzip tls [email protected] proxy / 127.0.0.1:8000 }" > /usr/local/caddy/Caddyfile #启动Caddy /etc/init.d/caddy start
采集发布
光搭建站点是不够的,还需要采集并自动发布图片,爬虫和发布脚本在 crawler 目录,详细脚本说明:
crawler开头的脚本为图片采集爬虫,然后也会自动给你发布到文章,目前有6个美女站的爬虫脚本,后期可能会更多 AutoPost.py为自动发布脚本,将你本地的图片自动发布到搭建的站点中 Compress.py为图片压缩脚本,可以自动压缩图片,减少硬盘占用
这里以 mm131 爬虫脚本为例,先编辑 crawler_mm131.py 爬虫脚本。
cd crawler nano crawler_mm131.py
大致修改如下:
#修改为你的数据库连接信息 dbhost = { "host": "127.0.0.1", "dbname": "94imm", "user": "root", "password": "moewah" } #修改爬取的页数和图片保存路径,page为页数,img_path为路径,自行修改 for i in [{"page": 1, "type": "xinggan", "type_id": 1}, {"page": 1, "type": "qingchun", "type_id": 3}, {"page": 1, "type": "xiaohua", "type_id": 3}, {"page": 1, "type": "chemo", "type_id": 1}, {"page": 1, "type": "qipao", "type_id": 2}, {"page": 1, "type": "mingxing", "type_id": 1}]: spider=Spider(page_num=i.get("page"),img_path='/static/images/mm131/',thread_num=10,type_id=i.get("type_id"),type=i.get("type"))
然后开始采集并自动发布到程序,使用命令:
#其它爬虫使用方法也都一样 python3 crawler_mm131.py
然后就可以再图片站看到你的图片了,要是不显示的话,可以尝试删除 cache 目录里的缓存文件。
如果你的硬盘空间很小,可以使用压缩脚本压缩下,使用命令:
#压缩时,会要你选择图片等路径 python3 Compress.py
如果压缩报错 No module named ‘PIL’,那需要先使用命令 pip3 install Pillow。
如果你要发布你本地的图片,就需要编辑 AutoPost.py,填上你的数据库信息,再使用 python3 AutoPost.py 发布即可。
最后你运行爬虫脚本的时候出现 UnicodeEncodeError: ‘ascii’ codec can’t encode 错误,那就需要先将系统的默认语言环境编码设置为 UTF-8 格式,使用命令:
echo 'export LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8' >> /etc/profile source /etc/profile
其他说明
对于修改模板,目前模板总共有 3 套,位于 templates 文件夹下,需要先修改 silumz 下 settings 文件中的模板配置。
#94imm为模板名 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates'+"/"+"94imm")]
然后将模板目录下的 pagination.html 文件放入 python 安装目录的 pagination 下。
一般为 /usr/local/lib/python3.6/site-packages/dj_pagination/templates/pagination
然后自己修改模板,模板为 html 文件,可在页面添加统计代码和广告代码。
对于想了解更多的,或者修改模板,爬虫分类、数据库的可以看下以下参考文章:
https://www.dablog.cn/index.php/archives/7/