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

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

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

配置服务器

安装Xshell6

下载地址:https://www.onlinedown.net/soft/36383.htm
下载安装完成后,打开xshell6,新建会话
在这里插入图片描述
输入公有ip地址,进行连接
在这里插入图片描述
接受并保存
在这里插入图片描述
随后输入完用户名和密码后,即可登陆成功:
登陆成功

给服务器安装python

去python官网选择一个python版本,这里以最新的python 3.9.0为例
下载地址:https://www.python.org/ftp/python/3.9.0/Python-3.9.0a1.tgz
选择版本
再回到xshell 6输入命令,等待安装完成

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

在这里插入图片描述
输入命令,解压python文件

1
tar -xvf Python-3.9.0a1.tgz

在这里插入图片描述
输入命令,查看当前目录

1
ll

在这里插入图片描述
随后依次输入命令:

1
2
3
cd Python-3.9.0a1

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

出现未安装合适编译器的问题
在这里插入图片描述
因此输入命令:

1
yum install gcc

在这里插入图片描述
安装完成后,输入命令进行编译

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

在这里插入图片描述
进行安装

1
make install

出现错误,缺少zlib相关的包
在这里插入图片描述
输入命令

1
yum -y install zlib*

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

1
make install

安装成功
在这里插入图片描述
切换到/usr/local/python3Dir 目录下查看
在这里插入图片描述
进入/usr/bin 目录,删除python 和pip文件夹

1
2
3
4
cd /usr/bin
rm -rf python
rm -rf pip
rm -rf easy_install

随后创建软链接

1
2
3
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

在这里插入图片描述
效果图
在这里插入图片描述
在这里插入图片描述

安装脚本所需要的包

依次输入

1
2
3
pip install requests
pip install lxml
pip install pymongo

若是安装lxml出现这个错误:
在这里插入图片描述
是由于没有_ctypes包,需要回到** /asyu17/python3/Python-3.9.0a1**目录下重新安装
命令

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

重新安装完python后,即可正常lxml了
在这里插入图片描述

安装MongoDB

首先,配置包管理系统

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

粘贴:

1
2
3
4
5
6
[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

在这里插入图片描述
再依次按 Esc–>:–>x–>Enter,退出并保存

随后使用yum安装MongDB

1
yum install -y mongodb-org

等待安装完成,大约需要半小时
在这里插入图片描述
安装完成后输入命令

1
vi /etc/mongod.conf

修改127.0.0.10.0.0.0,否则我们的主机无法访问服务器的MongoDB
在这里插入图片描述
完成后,保存退出
输入启动命令,启动服务

1
2
3
4
systemctl start mongod.service       # 启动
systemctl stop mongod.service # 停止

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

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

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

上传python代码

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

1
2
3
4
5
mkdir proxypool            # 创建目录
mkdir init.py # 创建脚本文件
mkdir proxy_pool.py # 创建脚本文件
vim ini.py # 编辑脚本文件
vim proxy_pool.py # 编辑脚本文件

在这里插入图片描述
运行代码:

1
python init.py

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

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

随后就可以正常使用了:
成功

连接服务器

先去阿里云服务器添加安全组,添加一个27017
在这里插入图片描述
配置规则
在这里插入图片描述
在这里插入图片描述
完成后,只需确保MongoDB在服务器上是启动的,即可进行调用了,调用示例:

1
2
3
4
5
6
7
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))

调用效果
在这里插入图片描述
至此,只需确保我们的代码在服务器后台持续运行,即可有有源源不断的高可用代理ip地址了~
代码在服务器后台运行命令:

1
2
3
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程序丢到后台执行?

==微信公众号:==

小术快跑