一直在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

坑太深,各种搜索,以上是安装汇总!

 

Logo

更多推荐