採集各種美女圖片站並下載圖片、自動搭建屬於自己的圖片站
說明
項目地址:https://git.coding.net/zxy_coding/94imm.git
環境要求:Python 3.6
、Mysql 5.7
、Nginx
/ Apache
(非必需),本文只說CentOS 6/7
、Debian 8/9
。
這裡會使用寶塔和手動2
種方法安裝,可根據自己服務器配置選擇。如果內存大於等於2G
,那就建議寶塔,方便很多,不然安裝不了Mysql 5.7
,如果你內存小於2G
的話,推荐OneinStack
一鍵包→傳送門,或者使用本文的手動安裝方法。
安裝環境
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.7
、Nginx
(如果你使用域名的話,就需要安裝)。
然後點擊左側數據庫-添加數據庫,設置好數據庫信息。
2、手動安裝環境
提示:为了简单,这里采用Mysql 5.7+Caddy环境,这里也是,如果你需要使用到域名才安装Caddy。
這裡博主是用的512M
內存測試的,雖然勉強可以玩,但還是建議內存別太低,不然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;
#修改密码为moerats
mysql> set password=password("moerats");
#退出数据库
mysql> exit;
#CentOS 6重启数据库
service mysqld restart
#CentOS 7重启数据库
systemctl restart mysql
創建新的數據庫,使用命令:
#创建94imm数据库,moerats为数据库密码,自行修改
mysql -uroot -pmoerats
mysql > create database 94imm;
#退出
mysql > exit;
此時Mysql 5.7
算是安裝完成了。
安裝Caddy
:
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.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
搭建站點
1、安裝Python3
為了避免下面依賴安裝出錯,這裡就不使用軟件包安裝Python3
了,直接就使用腳本安裝,使用命令:
#CentOS系统
wget https://www.moerats.com/usr/shell/Python3/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh
#Debian系统
wget https://www.moerats.com/usr/shell/Python3/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、moerats,请自行修改
mysql -uroot -pmoerats 94imm < silumz.sql
#编辑配置文件
nano silumz/settings.py
填上你的數據庫信息,大致如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '94imm',
'USER': 'root',
'PASSWORD': 'moerats',
'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.moerats.com {
gzip
tls admin@moerats.com
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": "moerats"
}
#修改爬取的页数和图片保存路径,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/
https://sunsea.im/139/94imm_tips/