【Python爬虫实例学习篇】——7、获取免费IP代理进阶: 在服务器上部署一个高可用代理池(2)

第一次玩linux服务器,过程还是比较曲折,还好是边写边做,把碰到的问题全部记录下来了,希望对大家有所帮助~
个人本博客地址:https://www.asyu17.cn 目录:

  1. 配置服务器
  2. 上传python代码
  3. 连接服务器

配置服务器

安装Xshell6

下载地址:https://www.onlinedown.net/soft/36383.htm 下载安装完成后,打开xshell6,新建会话

python项目服务器部署_爬虫


输入公有ip地址,进行连接

python项目服务器部署_爬虫_02


接受并保存

python项目服务器部署_linux_03


随后输入完用户名和密码后,即可登陆成功:

python项目服务器部署_python_04

给服务器安装python

去python官网选择一个python版本,这里以最新的python 3.9.0为例

下载地址:https://www.python.org/ftp/python/3.9.0/Python-3.9.0a1.tgz

python项目服务器部署_python_05


再回到xshell 6输入命令,等待安装完成

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

python项目服务器部署_mongodb_06


输入命令,解压python文件

tar -xvf Python-3.9.0a1.tgz

python项目服务器部署_python项目服务器部署_07


输入命令,查看当前目录

ll

python项目服务器部署_linux_08


随后依次输入命令:

cd Python-3.9.0a1

./configure --prefix=/usr/local/python3Dir         // 用于指定安装目录

出现未安装合适编译器的问题

python项目服务器部署_python项目服务器部署_09


因此输入命令:

yum install gcc

python项目服务器部署_linux_10


安装完成后,输入命令进行编译

/configure --prefix=/usr/local/python3Dir 
make

python项目服务器部署_linux_11


进行安装

make install

出现错误,缺少zlib相关的包

python项目服务器部署_linux_12


输入命令

yum -y install zlib*

完成后,再次输入命令进行安装

make install

安装成功

python项目服务器部署_linux_13


切换到/usr/local/python3Dir 目录下查看

python项目服务器部署_mongodb_14


进入/usr/bin 目录,删除python 和pip文件夹

cd /usr/bin
rm -rf python
rm -rf pip
rm -rf easy_install

随后创建软链接

ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python
ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip
ln -s /usr/local/python3Dir/bin/easy_install /usr/bin/easy_install

python项目服务器部署_爬虫_15


效果图

python项目服务器部署_mongodb_16


python项目服务器部署_python项目服务器部署_17

安装脚本所需要的包

依次输入

pip install requests
pip install lxml
pip install pymongo

若是安装lxml出现这个错误:

python项目服务器部署_python项目服务器部署_18


是由于没有_ctypes包,需要回到** /asyu17/python3/Python-3.9.0a1**目录下重新安装

命令

cd /asyu17/python3/Python-3.9.0a1
make install

重新安装完python后,即可正常lxml了

python项目服务器部署_python_19

安装MongoDB

首先,配置包管理系统

vi /etc/yum.repos.d/mongodb-org-3.4.repo

粘贴:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

python项目服务器部署_python项目服务器部署_20


再依次按 Esc–>:–>x–>Enter,退出并保存

随后使用yum安装MongDB

yum install -y mongodb-org

等待安装完成,大约需要半小时

python项目服务器部署_爬虫_21


安装完成后输入命令

vi /etc/mongod.conf

修改127.0.0.10.0.0.0,否则我们的主机无法访问服务器的MongoDB

python项目服务器部署_linux_22


完成后,保存退出

输入启动命令,启动服务

systemctl start mongod.service       # 启动
systemctl stop mongod.service        # 停止

systemctl status mongod.service      # 查看日志   可以用于判别是否启动

外网访问需要关闭防火墙,因此需要输入下面命令:

systemctl stop firewalld.service     #停止firewall
systemctl disable firewalld.service  #禁止firewall开机启动

上传python代码

依次输入如下代码,在编辑时粘贴我们的proxypool代码并保存即可。

mkdir proxypool            # 创建目录
mkdir init.py              # 创建脚本文件
mkdir proxy_pool.py        # 创建脚本文件
vim ini.py                 # 编辑脚本文件
vim proxy_pool.py          # 编辑脚本文件

python项目服务器部署_mongodb_23


运行代码:

python init.py

SSl错误:

python项目服务器部署_python_24


python默认安装ssl功能是不可用的,解决办法是重新编译python3安装文件,加上–with-ssl参数就可以让pip3使用ssl功能了(如果出现Could not import runpy module,就进入编译目录输入make clean,再重复这一操作)

./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
make
make install

随后就可以正常使用了:

python项目服务器部署_python项目服务器部署_25

连接服务器

先去阿里云服务器添加安全组,添加一个27017

python项目服务器部署_linux_26


配置规则

python项目服务器部署_linux_27


python项目服务器部署_python_28


完成后,只需确保MongoDB在服务器上是启动的,即可进行调用了,调用示例:

from Proxy_Pool import proxy_pool

if __name__ == '__main__':
    pool=proxy_pool.proxyPool()
    pool.__init__(host='你的主机地址')
    print('当前代理池内的代理数:%i'%pool.get_count())
    print(pool.get_iplist(20))

调用效果

python项目服务器部署_python_29


至此,只需确保我们的代码在服务器后台持续运行,即可有有源源不断的高可用代理ip地址了~

代码在服务器后台运行命令:

python init.py &    # 保持持续后台运行
ps                  # 查看运行程序的句柄
kill + 程序句柄      # 停止程序运行

参考文献

1.Linux杂谈 | (2)在Linux服务器上搭建Python3环境 2. CentOS环境安装mongoDB 3. yum安装MongoDB 4. Linux中Python3.6.6使用pip3安装第三方库报错pip is configured with locations that require TLS/SSL 5. linux上怎么把python程序丢到后台执行?