CentOS7.2上配置Python3+pip3+Selenium+PhantomJS

前一篇博文里提到的爬虫写好啦,总不能老是放在自己的笔记本上爬取数据吧,消耗网费还占时间,自然得挂在阿里云等服务器上。可这里也有一堆坑等着我踩。

我的阿里云装的是CentOS7.2,租来以后基本没动过。配置的环境请看那长长的标题。

Python3 和 pip3

注意,千万不能卸载CentOS7.2自带的Python2.7!这是我配环境犯下的第一个错误!因为yum等许多和系统关联很紧密的东西是依托Python2.7的,你卸载后yum等一堆东西都不能用,麻烦很大!如果你卸载了咋办呢?麻烦的做法是靠rpm方法把缺失的文件给补回来。我就比较厉害了,感谢阿里云的快照功能,我直接回滚磁盘。还好上面没啥重要的东西。

这样做就足够了:

yum install python34 -y
python3 --version
//没有自带pip3,从官网安装
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
pip3 -V

以后若要使用Python3pip3,就使用python3pip3命令;若要使用Python2pip2,就使用pythonpip命令。

网上有的教程为了让你直接运行python命令时启用的是Python3而不是Python2.7,很麻烦地让你删改各种软链接和配置文件(本强迫症患者就被坑得够惨)。我十分不建议这么做,CentOSPython2.7结合得太紧密了,这样改也容易出事。还是老老实实地按上面的做法来吧,也没麻烦到哪去。


Selenium 和 PhantomJS

前一步若能完成,后面的麻烦事就少了。安装Selenium,这样做就行:

pip install Selenium

能用pipyum等解决的就不要自己去搞什么压缩包,太麻烦了。

PhantomJS无头浏览器就没办法了。它并非一个Python库,所以它不能像Python的其他库一样安装,也不能用pip安装。
像这样做就很好:

wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar -xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
//创建软链接,放入系统路径: 
sudo ln -s ~/bin/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
//安装依赖——fontconfig和freetype: 
yum install fontconfig freetype2
//在终端下测试Phantomjs:
phantomjs -v

下载、解压、创建软链接、安装依赖、测试,一气呵成。

如果解压失败,多半是gzip2没装上。用yum就行:

yum install bzip2

好,进入最后一步~~


让爬虫在关闭终端后保持运行

环境配好了,通过远程ssh连上主机了,看着终端的正常输出,真是舒服啊。看了一会儿想断开连接,可连接一断爬虫跟着不干活了。这可咋整呢?

方法有很多,什么进程守护啊、写Shell脚本啊……太麻烦,使用tmuxlinux终端复用软件)最简单:

yum install tmux -y //安装软件
tmux //启动新终端
cd xxx //cd到你的脚本目录
python server.py//

此时脚本已经在运行了。就算关闭shell终端该程序还是在运行,因为启动该程序的直接终端是tmux,而不是你的。
如果想查看进程状态,重新打开终端,执行

tmux attach

就可以了。另外,这个网页还提供了许多别的方案,感兴趣者请点击

就等着明天收数据了~~