安装Chrome(Headless)并在python中使用

Chrome(Headless)即为Chrome的Headless模式,又称为无头浏览器

无头浏览器是一种没有图形用户界面的网页浏览器。
无头浏览器在类似于流行的Web浏览器的环境中提供对网页的自动控制,但是通过命令行界面或使用网络通信来执行。

安装GoogleChrome浏览器

在Windows下安装

  1. 直接下载安装

在Linux下安装

1. 从google官方网站下载Linux版chrome安装包

https://www.google.com/chrome/?platform=linux

2. 找到下载链接,下载xxx.rpm 文件

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

3. yum安装

yum install -y google-chrome-stable_current_x86_64.rpm

4. 安装过程中报错:

更新下依赖包
yum update glib2 -y

5. 查看版本号

chrome安装后,位于/opt/google/ 目录下
/opt/google/chrome/chrome --version

安装Chrome驱动

如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里。下载驱动,然后将驱动文件路径配置在环境变量即可。
驱动下载地址: https://sites.google.com/a/chromium.org/chromedriver/downloads

Windows

下载完成后,把zip文件解压下。有三种方式可以调用(这里我选择了较为方便的第一种)

方式1.

解压后的chromedriver.exe拷贝到Python 的Scripts目录下。

方式2.

或者在系统变量的Path变量中,添加驱动文件路径。

方式3.

在程序里面这样写:

   from selenium import webdriver
   browser = webdriver.Chrome('path\to\your\chromedriver.exe')
   browser.get('http://www.baidu.com/')

Linux

下载后,需要将chromedriver文件复制到/usr/bin或者/usr/local/bin或者/usr/sbin这几个文件夹下,这样才能让webdriver顺利调起浏览器供我们使用。

   wget https://chromedriver.storage.googleapis.com/81.0.4044.69/chromedriver_linux64.zip
   unzip chromedriver_linux64.zip
   chmod +x chromedriver
   mv -f chromedriver /usr/local/share/chromedriver
   ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
   ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

简单的在python中测试一下

#coding=utf-8
from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('headless')
driver = webdriver.Chrome(chrome_options=option)
driver.get('https://www.google.com')
print(driver.title)
#最后关闭一下
driver.quit()

在控制台输出“ Google

在linux下的报错

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

添加option.add_argument('--no-sandbox') 即可解决找不到DevToolsActivePort的报错

发表评论

邮箱地址不会被公开。 必填项已用*标注