【Python爬虫实例学习篇】——7、获取免费IP代理进阶: 在服务器上部署一个高可用代理池(2)
第一次玩linux服务器,过程还是比较曲折,还好是边写边做,把碰到的问题全部记录下来了,希望对大家有所帮助~
个人本博客地址:https://www.asyu17.cn 目录:
- 配置服务器
- 上传python代码
- 连接服务器
配置服务器
安装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输入命令,等待安装完成
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0a1.tgz
输入命令,解压python文件
tar -xvf Python-3.9.0a1.tgz
输入命令,查看当前目录
ll
随后依次输入命令:
cd Python-3.9.0a1
./configure --prefix=/usr/local/python3Dir // 用于指定安装目录
出现未安装合适编译器的问题
因此输入命令:
yum install gcc
安装完成后,输入命令进行编译
/configure --prefix=/usr/local/python3Dir
make
进行安装
make install
出现错误,缺少zlib相关的包
输入命令
yum -y install zlib*
完成后,再次输入命令进行安装
make install
安装成功
切换到/usr/local/python3Dir 目录下查看
进入/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
效果图
安装脚本所需要的包
依次输入
pip install requests
pip install lxml
pip install pymongo
若是安装lxml出现这个错误:
是由于没有_ctypes包,需要回到** /asyu17/python3/Python-3.9.0a1**目录下重新安装
命令
cd /asyu17/python3/Python-3.9.0a1
make install
重新安装完python后,即可正常lxml了
安装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
再依次按 Esc–>:–>x–>Enter,退出并保存
随后使用yum安装MongDB
yum install -y mongodb-org
等待安装完成,大约需要半小时 。
安装完成后输入命令
vi /etc/mongod.conf
修改127.0.0.1为0.0.0.0,否则我们的主机无法访问服务器的MongoDB
完成后,保存退出
输入启动命令,启动服务
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 init.py
SSl错误:
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
随后就可以正常使用了:
连接服务器
先去阿里云服务器添加安全组,添加一个27017
配置规则
完成后,只需确保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))
调用效果
至此,只需确保我们的代码在服务器后台持续运行,即可有有源源不断的高可用代理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程序丢到后台执行?