Selenium技术在CentOS6.8系统的腾讯云服务器上的docker镜像的Ubuntu容器里的相关使用(Linux环境下)

文章详细介绍了如何在Linux环境中使用Docker创建Ubuntu容器,安装Python3、Selenium相关依赖,包括谷歌浏览器和ChromeDriver,以实现无头浏览器测试。过程中涉及到了镜像搜索、容器运行、软件包安装、依赖管理等多个步骤。
摘要由CSDN通过智能技术生成

一、解释说明

一开始看标题,我知道你们会很懵,我当初完成的时候,我自己也很懵,主要是想在Linux环境下使用Selenium技术来完成一些工作,本来打算用docker创建一个Anaconda的容器来用Selenium技术的,但发现无法通过chrome驱动来驱动谷歌浏览器,所以我又用docker创建了一个Ubuntu容器来使用Selenium技术,至于为什么我不直接使用CentOS系统来使用,主要是原生环境的第三方库不配合自己的代码,实在是木有办法,而且也担心会干扰其它东西,所以还是在容器里搞吧。
另外作者我默认大家对于docker和shell命令都很熟,如果不懂的话,建议先看docker和shell

二、操作过程中Linux相关命令

1、前期准备(镜像、容器)

1.1 搜索Ubuntu镜像

docker search ubuntu

1.2 找到评分最高的ubuntu下载

docker pull ubuntu

1.3 查看服务器上的所有镜像

docker images

1.4镜像下载成功了,开始运行容器(路径自己配)

docker run -itd --privileged --name ubuntu -p 9201:9200 -v /宿主机路径:/ubuntu/python ubuntu /bin/bash

这里我搞了挂载,如果不挂载的话,自己的python代码在容器里都用不了。同时后续上传的文件都会放到挂载的文件夹里。

2、下载Ubuntu相关的包以及安装Python3

2.1 进入Ubuntu容器

docker exec -it ubuntu /bin/bash

2.2 更新源

apt-get update

2.3 安装apt-utils

apt-get install -y apt-utils

2.4 下载python3

apt-get install -y python3 python3-dev python3-setuptools

2.5 下载python3的pip工具

apt-get install -y python3-pip

2.6 更新pip到更新版本

pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.7 安装Ubuntu相关依赖1

apt-get install -y gcc make build-essential

2.8 安装Ubuntu相关依赖2

apt-get install -y libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev sqlite3 libsqlite3-dev openssl libssl-dev tcl8.6-dev tk8.6-dev libreadline-dev zlib1g-dev curl

2.9 安装Ubuntu相关依赖3

pip3 install --upgrade setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.10 安装需要的python的第三方库(文件自己传)

python所需要的第三方库的名字都在requirements.txt里,避免第三方库的版本不匹配(另外多说一句,得先通过xftp将requirements.txt上传到服务器里挂载的地方,进入到该挂载的文件夹里,然后执行该命令,不然是不起作用的)

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、安装谷歌浏览器

3.1 安装wget工具

apt-get install -y wget gnupg2

3.2 参考网址

参考文档: ubuntu16.04下安装64位谷歌Chrome浏览器

3.3 将下载源加入到系统的源列表

wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/

3.4 导入谷歌软件的公钥

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | apt-key add -

3.5 再次更新

apt-get update

3.6 执行对谷歌 Chrome 浏览器(稳定版)的安装

apt-get install google-chrome-stable

3.7 查看谷歌浏览器版本

google-chrome --version

如果出现谷歌浏览器的版本号,就证明成功了。

4、安装谷歌驱动

4.1 谷歌驱动网址(驱动自己找)

谷歌驱动链接: 谷歌驱动网址
在里面找到谷歌浏览器对应版本的驱动,选择linux版的,下载到本地,然后通过xftp上传到服务器上挂载的地方,然后修改python代码里的驱动位置,就可以测试了。

4.2 给chrome驱动执行权限

先进入到挂载的文件夹里,再给权限,不然这个文件找不到

chmod +x chromedriver

5、测试

5.1 将python代码通过xftp上传到挂载的文件夹里

5.2 给python文件执行权限(代码自己传)

先进入到挂载的文件夹里,再给权限,不然这个文件找不到

chmod u+x test.py

5.3 正式测试代码

先进入到存放test.py的挂载文件夹里,再执行命令,不然不起作用,同时得创建个log.log的日志文件

nohup python3 -u test.py > log.log 2>&1 &

这个shell命令大致意思是:后台执行python代码,并将日志存储到log.log里,及时输出。(可以在网上搜,都有的)

6、测试代码

#!/usr/bin/python3
#coding:utf-8
# 浏览器
from selenium import webdriver
# 规避检测
from selenium.webdriver import ChromeOptions
# 无头浏览器
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

ch_options = webdriver.ChromeOptions()
#为Chrome配置无头模式
ch_options.add_argument("--headless")  
ch_options.add_argument('--no-sandbox')
ch_options.add_argument('--disable-gpu')
ch_options.add_argument('--disable-dev-shm-usage')
# 在启动浏览器时加入配置,这个驱动路径是容器里对应的路径,不是宿主机的路径
dr = webdriver.Chrome(service=Service("/ubuntu/python/chromedriver"),options=ch_options)
#这是测试网站
url = "https://www.baidu.com"
dr.get(url)
#打印源码
print(dr.page_source)

三、题外话

我这些步骤一步步来,该提醒的位置都提醒了,其它直接执行,应该就能成功了。然后尝试在ubuntu20.04上配置了一下,也没有太大问题,因为我也是最近遇到这个问题才做的,繁琐是很繁琐,但有用,不保证对于每个人都有用,但如果出现问题可以及时反馈,一起努力共同进步啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊凯瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值