centos7上运行selenium

  • 概述
    使用selenium爬取网页数据,运行平台是centos7,除安装selenium外,必须做一些环境配置。

1. 安装

pip install selenium

2. 安装google-chrome

首先下载安装包

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

然后使用yum安装刚下载的安装包

yum install google-chrome-stable_current_x86_64.rpm

安装之后,会显示当前安装的版本,如图



可以看到我的版本是 90.0.4430.212-1,后面的.212-1不用理会

linux(centos)查看chrome版本号

google-chrome --version

3. 安装对应版本的chromedriver (必须与google-chrome版本对应)

进入 https://chromedriver.chromium.org/downloads (需要翻墙,如不能翻墙,请寻找国内镜像)选择 对应的版本,或者使用https://chromedriver.storage.googleapis.com/index.html,如下图


点击后,进入下一个页面,选择linux版本,并右键复制地址

wget https://chromedriver.storage.googleapis.com/90.0.4430.24/chromedriver_linux64.zip

下载完成后,解压



将 chromedriver添加到环境变量即可,由于我得目录是 /envConfig, 所以在/etc/profile末尾添加

#添加chromedriver
export PATH=$PATH:/envConfig/

即可。也可将其移动到/usr/bin目录下

mv chromedriver /usr/bin

4. 验证

随后进入 python 环境
实验一

from selenium import webdriver, common


url = 'https://chromedriver.chromium.org/downloads'
# 使用headless无界面浏览器模式
chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless') #//增加无界面选项
chrome_options.add_argument('--disable-gpu') #//如果不加这个选项,有时定位会出现问题


browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)

实验二:

from selenium import webdriver, common


url = 'http://www.nmc.cn/publish/typhoon/typhoon_new.html'
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)

browser.get(url)
print(browser.page_source)
browser.quit()


5. docker 运行 selenium 报错

5.1 文件权限问题

WebDriverException: Message: ‘chromedriver‘ executable may have wrong permissions.
出现这种问题,一般四种情况

  • 1、没装chromedriver
    版本号一定要对应上,查看一下你的chrome版本,对应好
  • 2、没有执行权限
    大多数人如果是做项目的话,爬虫一般都在服务器上,本地上传的时候没给权限
ls -l

这里赋予可执行权限

chmod -R 777 chromedriver
image.png

5.2 环境配置问题

报错:
docker Message: 'chromedriver' executable needs to be in PATH.
以前配置时,chromedriver将放入到/envConfig 内,然后通过配置文件配置,可行;但是在docker 内同样的配置出错。
后来将 chromedriver 放入到 /usr/bin/ 下
成功解决。

5.3 装了Chrome 后,yum 无法安装安装包啦

安装Chrome 后,yum install unzip 都报错:
failure: repodata/primary.xml.gz from google-chrome: [Errno 256] No more mirrors to try.
解决方法:

需要到/etc/yum.repos.d目录下,找到chrome的repo,也就是google-chrome.repo, 删除掉或者mv到别的地方,然后yum clean all, 就能解决。
主要是因为这个chrome的源没法用

cd /etc/yum.repos.d
rm -rf google-chrome.repo
yum clean all
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容