hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

小白 Python 爬虫布置 Linux

2019-11-18杂谈搜奇网25°c
A+ A-

媒介

前面国庆节的时刻写过一个浅易的爬虫。

《Python 浅易爬虫实战》

还没看过的同砚能够先看一下,这只爬虫主要用来爬取各个博客平台的浏览量等数据,一直以来都是天天晚上我本身手动在当地电脑运转,中心也有过频频遗忘运转了,致使没有当天的统计数据。

固然最好的方法就是把这只爬虫布置在效劳器上,让效劳器定时去运转,如许就不须要我天天人工运转了,另有别的一件事就是之前也说了要做一个统计页面,本身挖的坑,要本身填起来。

恰好近来各个云效劳厂商都在搞双十一的运动,小编一眼看下去,都是新用户才享用优惠,还好,小编在京东云照样新用户,购置了京东云的效劳。

这个价钱实在是太!贵!了!

平常本身测试运用没必要买和我同款的机械,小编买这个是为了背面有一些其他的效劳也能够布置在上面。

闲话不多说,我们正式最先吧。

前置环境预备

新机械拿到手,除了上面装好了一个 CentOS 之外,啥都没有了,第一步固然是先把环境装起来啊。

先枚举下我们要装的软件:

  • Docker
  • Mysql
  • Python3
  • Java8
  • Nginx

先装这么多吧,后续有补充的话再接着装。

Docker

起首什么是 Docker 请列位同砚本身摆渡好吧,我简朴诠释一下 Docker 是一个容器,这个容器中能够运转许多的顺序,这些顺序之间互不滋扰,假如个中谁人顺序在运用的过程当中设置不对搞不定了,只须要将对应的 container 住手掉删撤除从新启动一个即可,从这一点上来说类似于一个沙盒环境。这一点上尤其是数据库,本人具有者雄厚的在当地装置 Mysql 把 Mysql 玩脱了从新装置的履历。照样 Docker 好用。

最先装置 Docker ,起首时用本身喜好的东西衔接到长途的效劳器上(小编这里运用的是 xshell ),或许也能够本身当地装置对应的 CentOS 虚拟机(win 环境下装置 CentOS 虚拟机又能够写一篇教程了,尤其是个中的收集设置,第一次装置的同砚十有八九都卡在这里,有须要的同砚能够在民众号给我留言)。

衔接胜利后以下图:

彷佛把 ip 显露来了,emmmmmmmmmmmmm ,列位大佬,没事干别进击小编的机械,拜谢。

# step 1: 装置必要的一些体系东西
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 增添软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并装置 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker效劳
sudo systemctl start docker

假如 Linux 是运用 root 账号登录,敕令中无需增添 sudo ,这个症结字的寄义是运用治理员权限实行敕令。

Docker 默许的镜像源在悠远的太平洋的另一端,能够设置国内的镜像加快来加块我们的拉取速率,小编这里挑选的是阿里云的镜像加快,设置体式格局以下:

# 建立文件夹
sudo mkdir -p /etc/docker
# 写入设置内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://12ofullf.mirror.aliyuncs.com"]
}
EOF
# 重启效劳
sudo systemctl daemon-reload
sudo systemctl restart docker

至此,Docker 装置设置就完成了,能够运用以下敕令检察 Docker 的相干信息来考证 Docker 一般装置:

docker info

页面一般打印以下:

Mysql

Mysql 能够有两种装置体式格局,一种是直接在 CentOS 上举行装置,另一种是在 Docker 中举行装置,这里小编挑选后一种,别问为啥,问就是简朴、轻易、快速。

小编这里装置的 Mysql 挑选版本为 5.7 ,装置敕令以下:

docker pull mysql:5.7

等进度条走完,好了,我们已装好了 Mysql ,是不是是很简朴。

固然,我们适才只是把 Mysql 的现象给 pull 下来了,接下来的启动才是症结。

docker run --name mysql --restart=always -p 3306:3306 -v /www/mysql/conf.d:/etc/mysql/conf.d -v /www/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d -v /www/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:5.7

这个敕令轻微有点长,不过没紧要,直接 Copy 就 Ok。

轻微诠释下个中的寄义吧:

--restart 标志会搜检容器的退出代码,并据此来决议是不是要重启容器,默许是不会重启。

--restart 的参数申明:

  • always:不管容器的退出代码是什么,Docker都邑自动重启该容器。
  • on-failure:只有当容器的退出代码为非0值的时刻才会自动重启。别的,该参数还接收一个可选的重启次数参数,--restart=on-fialure:5 示意当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。

-v 容器内的 /var/lib/mysql 在宿主机上 /www/mysql/datadir 做映照

-e MYSQL_ROOT_PASSWORD 初始密码

-p 将宿主机3306的端口映照到容器3306端口

接下来我们测试下适才装置的 Mysql ,固然是运用当地的衔接东西看下是不是能一般衔接啊,这里的东西小编挑选了 Navicat 这一典范的 Mysql 衔接东西。

测试链接胜利,我们的 Mysql 装置完成。

Nginx

Nginx 是一款优异的反向代办东西,细致的信息列位同砚能够摆渡,简朴形貌下运用场景的话就是我一台效劳器上能够启动多个效劳,经由过程 Nginx 反向代办,能够映照多个域名,运用差别的域名接见差别的效劳,固然 Nginx 的功用远不止这些。

起首,翻开 Nginx 的官网( http://nginx.org/en/download.html ),挑选一个你喜好的版本,Copy 到它的下载链接:

然后我们运用 wget 敕令来下载它。

cd /opt/
wget http://nginx.org/download/nginx-1.17.5.tar.gz

小编这里挑选的 Nginx 的版本为 1.17.5 。

守候进度条走完,这时候我们得到了一个 Nginx 的压缩包,接下来解压它。

tar -xvzf nginx-1.17.5.tar.gz

然后我们须要装置 nginx 的编译环境:

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

守候进度条走完。

进入我们适才解压的目次:

cd nginx-1.17.5

最先设置、编译、装置:

./configure
make && make install

一小段时候的守候。

守候实行完成后,能够看到 Nginx 已帮我们装置到 /usr/local/nginx/ 这个目次下了,接下来我们能够建立一个软衔接,让我们在任何目次都能够直接实行 nginx 的敕令:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx 相干敕令

# 启动
nginx
# 住手
nginx -s quit 或许 nginx -s stop
# 重启
nginx -s reload

我们启动 nginx ,翻开浏览器接见直接接见ip,如图:

Nginx 已装置完成,反向代办的设置我们背面用到了再聊,这里先酱。

Java8

统计报表效劳小编这里设想运用 Java 来写,固然 Java 顺序也能够放入 Docker 中运转,不过设置 Java 环境就是一件随手的事变,趁便做了吧:)

起首一样,先下载 JDK8 ,而且将 JDK8 放入 /opt/ 目次中。

因为小编这里当地有下好的,就不去下载了,人人能够接见 Oracle 的官网下载。

小编这里给一个下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

回到我们的 CentOS :

cd /opt/
ll

小编这里运用的 jdk 的版本是 8u221 。

直接解压:

tar -xvzf jdk-8u221-linux-x64.tar.gz

好了,我们又装置完了,固然还须要设置下环境变量,直接编辑 /etc/profile 这个文件,在文件中到场我们的环境变量:

# 编辑
vi /etc/profile

写入环境变量以下:

# 先按 i 开启插进去形式,写入以下内容
export JAVA_HOME=/opt/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

退出保留时先按 esc 键,输入 :wq ,再按回车键 enter

这时候须要革新下设置文件:

source /etc/profile

我们来测试适才设置的 jdk 环境变量是不是见效:

# 输入
java -version
# 输出
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
# 输入
javac -version
# 输出
javac 1.8.0_221

jdk 装置完成

Python3

终究到了最主要的 Python3 的装置了 。

起首一样,去 Python 的官网,找到对应版本的 Python3 的下载地点,进入 /opt/ 目次举行下载:

官网下载链接:https://www.python.org/downloads/source/

小编这里挑选的是停止现在最新宣布的 3.8.0 版本。

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

下载完成后直接解压:

tar -xvzf Python-3.8.0.tgz

解压后编译装置:

# 建立装置目次
mkdir /usr/local/python3
cd Python-3.8.0
# 搜检设置
./configure --prefix=/usr/local/python3
# 编译、装置
make && make install
# 建立软衔接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

测试装置效果:

# 输入
python3 -V
# 输出
Python 3.8.0

至此,前置环境已搭建完成~~~

布置爬虫

我们前面写的爬虫是一个 .py ,先把这个文件上传至效劳器,目次本身喜好就好,小编平常安排在 /opt/ 目次下。

因为我们的爬虫引用了一些第三方的模块,这里须要先装置这些模块:

pip3 install lxml pymysql

装置完成后我们实行一下之前的剧本:

# 输入
python3 /opt/pythonproject/spider-demo.py
# 输出
---------CSDN 数据写入完成---------
---------掘金 数据写入完成---------
---------CNBLOG 数据写入完成---------

能够看到实行胜利,接下来,我们要为 CentOS 设置定时使命,临时先设置成天天的整点实行一次我们的 Python 爬虫,便于我们区分当前的使命是不是实行。

定时使命我们是运用 crontab 来完成的,假如当前的 CentOS 不含有 crontab ,能够先举行装置:

yum install crontabs -y

几个基本敕令相识一下:

/sbin/service crond start //启动效劳 
/sbin/service crond stop //封闭效劳 
/sbin/service crond restart //重启效劳 
/sbin/service crond reload //从新载入设置 
检察crontab效劳状况:service crond status 

我们先设置定时使命:

# 进入使命设想设置
crontab -e
# 设想内容
0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * python3 /opt/pythonproject/spider-demo.py
# 保留退出
:wq

使命设置完成后,从新载入一下设置,或许重启一下效劳都是能够的。

接下来就是静静的守候一小时后看下数据有无一般的写入数据库。

统计报表

统计报表运用 Java 来完成,后端运用手艺为 SpringBoot + Mybatis + Thymeleaf 。前端设想手艺为 Vue + Element(饿了么前端组件库)。

详细完成就不枚举了,有兴致的同砚能够接见代码堆栈猎取。

制品大抵是酱紫滴:

Java 顺序宣布大抵引见一下吧,在效劳器上建立一个本身喜好的目次,将当地的顺序打包后拖上去,实行下面的敕令:

nohup java -jar /opt/project/tongji.jar >tongji.out 2>&1 &

就启动胜利了。固然也能够将这个顺序打成 Docker 镜像(这个后续有时机再聊吧),经由过程 Docker 来启动 Java 效劳。

你认为这就完了么?怎么可能,我们另有 Nginx 没有用呢,下面来引见怎样经由过程 Nginx 来反向代办一个域名。

起首,你要有一个域名,小编的域名是在腾讯云购置的,而且完成了备案,能够为所欲为的运用啦~~~~

起首,自定义一个域名指向我们的效劳器,大抵是如许滴:

轻微等一会,等 DNS 见效。然后我们接见域名:http://tongji.geekdigging.com/ ,这时候能够看到页面跳转至 Nginx 的首页:

接下来我们要设置 Nginx 的反向代办了。

起首在 /usr/local/nginx/conf/nginx.conf 这个文件的末了增添一句话:

include /etc/nginx/vhost/*.conf;

因为我们背面可能会设置许多域名,这里直接将一切的域名相干的设置文件都放在 /etc/nginx/vhost/ 这个目次下,轻易治理, nginx 本身的设置文件我们不多做修正。

我们在 /etc/nginx/vhost/ 建立 tongji.conf 文件,个中内容以下:

server {
    listen       80;
    autoindex on;
    server_name  tongji.geekdigging.com;
    access_log off;
    # access_log /usr/local/nginx/logs/fuhui_access.log combined;
    error_log  /usr/local/nginx/logs/fuhui_error.log  error;
    index index.html index.htm index.jsp index.php;

    if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
    }

    location / {
        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header Client-IP $remote_addr;

        proxy_set_header X-Forward-For $remote_addr;
        
    }
}

完成后重启 Nginx :

nginx -s reload

然后我们就可以经由过程域名接见本身的统计报表了,如图:

详细链接为:http://tongji.geekdigging.com/ ,感兴致的小伙伴能够本身碰运气,有不清楚的处所能够在民众号留言问我。

示例代码

本系列的一切代码小编都邑放在代码治理堆栈 Github 和 Gitee 上,轻易人人取用。

示例代码-Github

示例代码-Gitee

参考

https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.12931991GMAstw

https://blog.csdn.net/d1240673769/article/details/81451922

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
小白 Python 爬虫布置 Linux

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282125.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>