念念不忘
必有回响

采集各种美女图片站并下载图片、自动搭建并发布,打造属于自己的图片网站

说明:距离上次给男同学们分享爬虫福利已经有一年多了,福利就自己在博客翻下,现在再分享个大佬的爬虫项目,可以爬取mm131、mmjpg、妹子图等各大美女图片站,然后下载图片后,自动帮你发布并搭建一个属于你自己的图片站,该项目作者也在长期维护,貌似正在对接OneDrive,还是很不错的,如果营养快线多的可以自己搭建个慢慢欣赏吧。

前台效果图

说明

项目地址: https://git.coding.net/zxy_coding/94imm.git

环境要求:Python 3.6、Mysql 5.5+、Nginx/Apache(非必需),本文只说CentOS 6/7、Debian 8/9。

这里使用宝塔和手动2种方法安装,如果你需要快速上手就使用手动安装,想操作方便就宝塔,自行选择。

安装环境

1、使用宝塔安装

1
2
3
4
<span class="hljs-comment">#CentOS系统</span>
<span class="hljs-attribute">wget</span> -O install.sh http://download.bt.cn/install/install_6.0.sh &amp;&amp; sh install.sh
<span class="hljs-comment">#Debian系统</span>
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh &amp;&amp; bash install

安装完成后,进入面板,点击左侧软件管理,然后安装Mysql 5.5+、Nginx(如果你使用域名的话,就需要安装)。

然后点击左侧数据库-添加数据库,设置好数据库信息。

2、手动安装环境

1
提示:为了简单,这里采用<span class="hljs-selector-tag">Mysql</span> 5<span class="hljs-selector-class">.7</span>+<span class="hljs-selector-tag">Caddy</span>环境,这里也是,如果你需要使用到域名才安装<span class="hljs-selector-tag">Caddy</span>。

这里博主是用的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; #修改密码为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

然后看着改,大致修改如下:

1
2
<span class="hljs-meta">#</span><span class="bash">配置文件默认是将源码放在root目录,如果在其他目录可以自行修改</span>
<span class="hljs-meta">#</span><span class="bash">如果你要是用ip访问,将127.0.0.1:8000改成http=0.0.0.0:8000,端口也可以改</span>

启动程序:

uwsgi --ini uwsgi.ini

此时站点地址为ip:8000。

3、域名反代

1
提示:不需要域名的跳过该步骤

宝塔面板设置:
然后点击左侧网站-添加站点,填上你的域名,其他默认,然后点击域名设置-反向代理,url设置 http://127.0.0.1:8000即可。然后打开你的域名就可以看到站点了。

Caddy设置:

1
2
3
4
5
6
7
8
9
<span class="hljs-comment">#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!且会自动给你配置ssl证书</span>
<span class="hljs-attribute">echo</span> <span class="hljs-string">"www.moerats.com {
 gzip
 tls admin<span class="hljs-variable">@moerats</span>.com
 proxy / 127.0.0.1:8000
}"</span> &gt; /usr/local/caddy/Caddyfile

<span class="hljs-comment">#启动Caddy</span>
/etc/init.d/caddy start

采集发布

光搭建站点是不够的,还需要采集并自动发布图片,爬虫和发布脚本在crawler目录,详细脚本说明:

1
2
3
<span class="hljs-selector-tag">crawler</span>开头的脚本为图片采集爬虫,然后也会自动给你发布到文章,目前有6个美女站的爬虫脚本,后期可能会更多
<span class="hljs-selector-tag">AutoPost</span><span class="hljs-selector-class">.py</span>为自动发布脚本,将你本地的图片自动发布到搭建的站点中
<span class="hljs-selector-tag">Compress</span><span class="hljs-selector-class">.py</span>为图片压缩脚本,可以自动压缩图片,减少硬盘占用

这里以mm131爬虫脚本为例,先编辑crawler_mm131.py爬虫脚本。

1
2
<span class="hljs-selector-tag">cd</span> <span class="hljs-selector-tag">crawler</span>
<span class="hljs-selector-tag">nano</span> <span class="hljs-selector-tag">crawler_mm131</span><span class="hljs-selector-class">.py</span>

大致修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
<span class="hljs-meta">#修改为你的数据库连接信息</span>
dbhost = {
    <span class="hljs-string">"host"</span>: <span class="hljs-string">"127.0.0.1"</span>,
    <span class="hljs-string">"dbname"</span>: <span class="hljs-string">"94imm"</span>,
    <span class="hljs-string">"user"</span>: <span class="hljs-string">"root"</span>,
    <span class="hljs-string">"password"</span>: <span class="hljs-string">"moerats"</span>
}
<span class="hljs-meta">#修改爬取的页数和图片保存路径,page为页数,img_path为路径,自行修改</span>
<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> [{<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"xinggan"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">1</span>}, {<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"qingchun"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">3</span>},
          {<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"xiaohua"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">3</span>}, {<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"chemo"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">1</span>},
          {<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"qipao"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">2</span>}, {<span class="hljs-string">"page"</span>: <span class="hljs-number">1</span>, <span class="hljs-string">"type"</span>: <span class="hljs-string">"mingxing"</span>, <span class="hljs-string">"type_id"</span>: <span class="hljs-number">1</span>}]:
spider=Spider(page_num=i.<span class="hljs-keyword">get</span>(<span class="hljs-string">"page"</span>),img_path=<span class="hljs-string">'/static/images/mm131/'</span>,thread_num=<span class="hljs-number">10</span>,type_id=i.<span class="hljs-keyword">get</span>(<span class="hljs-string">"type_id"</span>),type=i.<span class="hljs-keyword">get</span>(<span class="hljs-string">"type"</span>))

然后开始采集并自动发布到程序,使用命令:

1
2
<span class="hljs-comment">#其它爬虫使用方法也都一样</span>
<span class="hljs-attribute">python3</span> crawler_mm131.py

然后就可以再图片站看到你的图片了,要是不显示的话,可以尝试删除cache目录里的缓存文件。

如果你的硬盘空间很小,可以使用压缩脚本压缩下,使用命令:

1
2
<span class="hljs-comment">#压缩时,会要你选择图片等路径</span>
<span class="hljs-attribute">python3</span> Compress.py

如果压缩报错No module named 'PIL',那需要先使用命令pip3 install Pillow。

如果你要发布你本地的图片,就需要编辑AutoPost.py,填上你的数据库信息,再使用python3 AutoPost.py发布即可。

最后你运行爬虫脚本的时候出现UnicodeEncodeError: 'ascii' codec can't encode错误,那就需要先将系统的默认语言环境编码设置为UTF-8格式,使用命令:

1
2
<span class="hljs-built_in">echo</span> <span class="hljs-string">'export LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8'</span> &gt;&gt; /etc/profile
<span class="hljs-built_in">source</span> /etc/profile

其他说明

对于修改模板,目前模板总共有3套,位于templates文件夹下,需要先修改silumz下settings文件中的模板配置。

1
2
3
4
5
<span class="hljs-meta">#94imm为模板名</span>
TEMPLATES = [
{
    <span class="hljs-string">'BACKEND'</span>: <span class="hljs-string">'django.template.backends.django.DjangoTemplates'</span>,
    <span class="hljs-string">'DIRS'</span>: [os.path.<span class="hljs-keyword">join</span>(BASE_DIR, <span class="hljs-string">'templates'</span>+<span class="hljs-string">"/"</span>+<span class="hljs-string">"94imm"</span>)]

然后将模板目录下的pagination.html文件放入python安装目录的pagination下。

一般为/usr/local/lib/python3.6/site-packages/dj_pagination/templates/pagination

然后自己修改模板,模板为html文件,可在页面添加统计代码和广告代码。

对于想了解更多的,或者修改模板,爬虫分类、数据库的可以看下以下参考文章:

1
2
https:<span class="hljs-comment">//www.dablog.cn/index.php/archives/7/</span>
https:<span class="hljs-comment">//sunsea.im/139/94imm_tips/</span>

原文转载地址:https://www.moerats.com/archives/827/    感兴趣的可以试着搭建。

赞(0) 打赏
未经允许不得转载:小蚁上树 » 采集各种美女图片站并下载图片、自动搭建并发布,打造属于自己的图片网站
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址