day11

该文详细介绍了如何在CentOS7上安装python3.7.8,包括备份默认python,下载安装依赖,编译安装python,创建软链接,以及安装pip。接着,文章讲解了设置阿里云镜像源加速pip,并安装selenium及相关库,用于自动化爬虫。最后,文中提到了安装chrome,解决相关依赖,以及配置selenium在无图形界面的Linux环境下进行爬取数据。
摘要由CSDN通过智能技术生成

CentOS7 安装python3.7.8并运行爬虫程序

须知:我们教学使用的是centOS7中默认自带了一个python环境,但是2.7版本的,而我们教学过程使用的却是3.7.8

centOS8自带的python环境是python3

一、linux中安装python3.7.8

1. 查看默认的python2.7的安装目录

[root@master ~]# cd /usr/bin
[root@master bin]# ll python* 
lrwxrwxrwx. 1 root root    7 1月   9 11:04 python -> python2
lrwxrwxrwx. 1 root root    9 1月   9 11:04 python2 -> python2.7
-rwxr-xr-x. 1 root root 7144 4月   2 2020 python2.7
[root@master bin]# 

三个显示结果中最后一个是python2.7,实际上这几个文件之间是存在软链接的依赖关系,类似于windows中的超链接。

我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3.7.8,然后将python指向python3.7.8,然后python2指向python2.7,那么两个版本的python就能共存了。

2. 下载相关依赖包

在之前学习过程中知道python创始人是基于C语言编写的解释器,所以我们安装的时候需要对下载的包先进行编译,才能安装。但是centOS7中有些依赖是没有的,所以我们需要先使用yum命令进行安装。

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

我们要安装版本3.7.8,首先要把刚才显示的三个python文件中的第一个python给备份一下(不保留源文件,仅保留备份文件就可以)

[root@master bin] mv python python.bak

python文件变成了python.bak文件,让它不生效。

3. 下载python包

官方网址:https://www.python.org/ftp/python/

找到python3.7.8版本,不要在windows中下载

将url进行一个拼接:https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz

切换目录,创建下载包的位置文件夹

[root@master bin]# cd /usr/local/soft/
[root@master soft]# ll
总用量 186420
drwxr-xr-x. 8 root root       206 1月  10 15:35 bigdata22
drwxr-xr-x. 2 root root        35 1月  10 09:57 bigdata22test
drwxr-xr-x. 8   10  143       255 3月  29 2018 jdk1.8.0_171
-rw-r--r--. 1 root root 190890122 1月   9 16:12 jdk-8u171-linux-x64.tar.gz
[root@master soft]# cd bigdata22
[root@master bigdata22]# cd ..
[root@master soft]# ll
总用量 186420
drwxr-xr-x. 8 root root       206 1月  10 15:35 bigdata22
drwxr-xr-x. 2 root root        35 1月  10 09:57 bigdata22test
drwxr-xr-x. 8   10  143       255 3月  29 2018 jdk1.8.0_171
-rw-r--r--. 1 root root 190890122 1月   9 16:12 jdk-8u171-linux-x64.tar.gz
[root@master soft]# mkdir python378
[root@master soft]# cd python378/
[root@master python378]# pwd
/usr/local/soft/python378

进入/usr/local/soft/python378目录进行下载:(wget命令我们之前下载过)

wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz

使用tar解压命令进行

[root@master python378]# tar -zxvf Python-3.7.8.tgz

cd 进入到解压后的目录中

指定python的安装目录,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。

[root@master Python-3.7.8]# ./configure --prefix=/usr/local/soft/python378-install-dir

指定好后,当前目录下,进行编译

[root@master Python-3.7.8]# make

编译好之后进行安装,安装的位置为我们指定的位置:/usr/local/soft/python378-install-dir

[root@master Python-3.7.8]# make install

执行完后我们指定的安装目录就有了

切换回/usr/bin目录,创建软链接

ln -s /usr/local/soft/python378-install-dir/bin/python3 /usr/bin/python

查看一下当前的python版本

输入python进入,然后写代码:

[root@master soft]# python
Python 3.7.8 (default, Jan 11 2023, 22:43:08) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> 
>>> print("hello world")
hello world
>>> exit()
[root@master soft]# 

安装pip

前提:因为我们将python的软链接改为了python3.7.8,而系统内部等像yum还是依赖python2.7的,所以我们需要改两个文件让yum依然用原来的2.7版本
a. /usr/bin/yum
b. /usr/libexec/urlgrabber-ext-down

将上面两个文件第一行进行修改:

#!/usr/bin/python------->  #!/usr/bin/python2.7

先下载epel扩展源

yum -y install epel-release

安装pip(多试几次)

yum install -y python3-pip

配置下阿里镜像源加速

/root/.pip/pip.conf(手动创建.pip目录,pip.conf文件)

添加以下内容:

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/


[install]
trusted-host=mirrors.aliyun.com

创建软链接

ln /usr/local/soft/python378-install-dir/bin/pip3 /usr/bin/pip

下载numpy,pandas,requests,selenium==3.0.2

二、centOS7中使用selenium模块进行自动化爬虫

1. 安装chrome

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

第一次可能会失败,多试几次

2. 安装一些依赖的库

yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

3. 安装 chromedriver

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip

4. 将下载的文件解压,放在如下位置

[root@master soft]# unzip chromedriver_linux64.zip
-bash: unzip: 未找到命令
[root@master soft]# yum install unzip
[root@master soft]# unzip chromedriver_linux64.zip
Archive:  chromedriver_linux64.zip
  inflating: chromedriver            
[root@master soft]# mv chromedriver /usr/bin/

三、在linux中使用自动化爬取数据

因为在linux中是没有图形化界面的,不支持可视化,所以要设置一些配置

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
chrome_options.add_argument('window-size=1920x3000')  # 指定浏览器分辨率
chrome_options.add_argument('--disable-gpu')  # 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--hide-scrollbars')  # 隐藏滚动条, 应对一些特殊页面
chrome_options.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
chrome_options.add_argument('--headless')  # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

# 创建浏览器对象
driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=chrome_options)  # executable_path:浏览器驱动路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值