Chrome(Headless)即为Chrome的Headless模式,又称为无头浏览器
无头浏览器是一种没有图形用户界面的网页浏览器。 无头浏览器在类似于流行的Web浏览器的环境中提供对网页的自动控制,但是通过命令行界面或使用网络通信来执行。
安装GoogleChrome浏览器
在Windows下安装
- 直接下载安装
在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.
在程序里面这样写:
代码语言:javascript复制 from selenium import webdriver
browser = webdriver.Chrome('pathtoyourchromedriver.exe')
browser.get('http://www.baidu.com/')
Linux
下载后,需要将chromedriver文件复制到/usr/bin或者/usr/local/bin或者/usr/sbin这几个文件夹下,这样才能让webdriver顺利调起浏览器供我们使用。
代码语言:javascript复制 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中测试一下
代码语言:javascript复制#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下的报错
代码语言:javascript复制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的报错