Linux 下 Selenium Python Chrome 环境搭建
一直在window下进行爬虫抓取数据,但是因为国内网络的环境独特性,今天就考虑放到海外服务器上进行抓取
PS:因为之前用的Centos X86 32位的,一路没少踩坑,所以各种限制,各种坑,刚刚重装了服务器系统
PS:python2 版本也是可以的,安装scrapy也容易,关键就在于selenium.webdriver这个兼容,因为有些抓取于面需要模拟浏览器点击等行为。
PS:服务器为裸机,一切重新开始安装
服务器配置:Centos7 X86 64位
补充一个坑:要先完全pip3的安装,在进行 scrapy 等系列安装,否则默认都属于python2 的安装!
一:升级 python 版本,为什么要升级,我们来看一下 Firefox Selenium Geckodriver Python 版本之间兼容图
在测试中,我服务器上的 python2.7使用 pip 只能安装2.1版本的Selenium,所以无法使用
注意:安装python3之前请先安装,要不没有pip3 导致selenium版本为pip2安装,会报错,失败
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
#yum install libffi-devel -y 《-安装这个就能解决
1.安装前查看当前系统下的python版本号,如果你的 python 版本高于3请跳过此步骤
# python -V
2.获取python3.x的官方软件包
# cd /usr/local
# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
3.解压缩该软件包
# tar -zxvf Python-3.7.3.tgz
4.在解压目录下安装配置
# cd Python-3.6.5
# ./configure
5.编译并安装
# make
# make install
6.验证当前系统下安装的python版本号
# python3 -V
Python 3.7.3
7.查看一下新安装的python3的文件位置
# ll /usr/local/bin/python*
lrwxrwxrwx 1 root root 9 May 7 04:56 /usr/local/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 13982696 May 7 04:55 /usr/local/bin/python3.7
lrwxrwxrwx 1 root root 17 May 7 04:56 /usr/local/bin/python3.7-config -> python3.7m-config
-rwxr-xr-x 2 root root 13982696 May 7 04:55 /usr/local/bin/python3.7m
-rwxr-xr-x 1 root root 3105 May 7 04:56 /usr/local/bin/python3.7m-config
lrwxrwxrwx 1 root root 16 May 7 04:56 /usr/local/bin/python3-config -> python3.7-config
8.备份原有配置,设置python默认版本号为3.x
# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/local/bin/python3 /usr/bin/python
9.查看一下2.x版本的文件位置
# ll /usr/bin/python*
lrwxrwxrwx 1 root root 22 May 7 04:58 /usr/bin/python -> /usr/local/bin/python3
lrwxrwxrwx 1 root root 9 May 7 04:32 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Apr 9 10:31 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1835 Apr 9 10:31 /usr/bin/python2.7-config
lrwxrwxrwx 1 root root 16 May 7 04:32 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root 7 May 7 04:32 /usr/bin/python.bak -> python2
lrwxrwxrwx 1 root root 14 May 7 04:32 /usr/bin/python-config -> python2-config
10.为了使yum命令正常使用,需要将其配置的python依然指向2.x版本
# vi /usr/bin/yum
# vi /usr/libexec/urlgrabber-ext-down
将上面两个文件的头部文件修改为老版本即可
!/usr/bin/python --> !/usr/bin/python2.7
二:接下来我们安装 scrapy
[root@localhost ~]# pip install scrapy
-bash: pip: 未找到命令
可以看到,没有pip命令,那我们需要先安装pip:
yum -y install epel-release
yum install python-pip
安装scrapy
pip install scrapy
安装成功,提示升级 pip 版本,顺带升级
pip install --upgrade pip
三:安装 Selenium
pip install selenium
四:安装 Google Chrome,这里推荐一键安装包:https://intoli.com/blog/installing-google-chrome-on-centos/
注:国内服务器不行,需要配代理
curl https://intoli.com/install-google-chrome.sh | bash
会自动检测依赖进行全部安装
查看版本:
# google-chrome -version
Google Chrome 74.0.3729.131
安装chromedriver:一个用来和chrome交互的接口,后来又删除了,提示版本不对
yum install chromedriver
PS:后来填坑,因为执行爬虫,报 Google Chrome 和 chromedriver 版本不兼容,这是需要根据版本号到这里来手动下载安装:
http://chromedriver.chromium.org/downloads
我的是74,所以对应下载:
打开
https://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/
cd /usr/local
wget https://chromedriver.storage.googleapis.com/74.0.3729.6/chromedriver_linux64.zip
unzip chromedriver_linux64
创建符号链接:
ln -s /usr/local/chromedriver /uer/bin/chromedriver
执行 chromedriver
chromedriver
输出:
Starting ChromeDriver 73.0.3683.86 on port 9515
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
注解:使用 pip selenium 安装的版本不对,因为 pip 默认是版本2,导致后来安装pip3 失败
【ModuleNotFoundError: No module named ‘_ctypes’ make: *** [install] Error 1】解决方式
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
#yum install libffi-devel -y
然后重新进入 python3 目录进行安装编译,然后 就自动安装了 pip3
然后创建符号链接,替换掉之前的
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip
坑太深,各种搜索,以上是安装汇总!