赞
踩
记录下最近用webmagic+selenium写了个爬虫,本地是在Windows上跑,后来要部署在linux服务器上,配置环境所踩过的坑。
CentOS 7
java (jdk1.8)
tomcat8.5
mysql5.7
在上有环境基础上进行操作:
执行: yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
在安装chromedriver之前,先查看自己系统装的chrome版本:
执行: google-chrome --version
执行: wget https://npm.taobao.org/mirrors/chromedriver/77.0.3865.40/chromedriver_linux64.zip(这是我对应的版本, 请更具自己的浏览器版本自行修改)
将下载的文件解压,放在如下位置:/usr/bin/chromedriver
执行:unzip chromedriver_linux64.zip 进行解压
执行: mv -f chromedriver /usr/bin/ 移动到/usr/bin/chromedriver
给予执行权限
执行:chmod +x /usr/bin/chromedriver
安装 XVFB
执行: yum install Xvfb -y
执行:yum install xorg-x11-fonts* -y
新建在/usr/bin/ 一个名叫 xvfb-chrom 的文件写入以下内容:
执行:vim /usr/bin/xvfb-chrome
复制下面内容:
#!/bin/bash
_kill_procs() {
kill -TERM $chrome
wait $chrome
kill -TERM $xvfb
}
# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM
XVFB_WHD=${XVFB_WHD:-1280x720x16}
# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
export DISPLAY=:99
chrome --no-sandbox --disable-gpu$@ &
chrome=$!
wait $chrome
wait $xvfb
添加执行权限
执行:chmod +x /usr/bin/xvfb-chrome
查看当前映射关系
执行:ll /usr/bin/ | grep chrom
更改Chrome启动的软连接
执行:
ln -s /etc/alternatives/google-chrome /usr/bin/chrome
- rm -rf /usr/bin/google-chrome
- ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome
查看修改后的映射关系
执行:ll /usr/bin/ | grep chrom
下面是demo:
- public String test(){
- ChromeOptions options = new ChromeOptions();
- //chrome安装位置
- System.setProperty("webdriver.chrome.bin", "/opt/google/chrome/chrome");
- //chromederiver存放位置
- System.setProperty("webdriver.chrome.driver",
- "/usr/bin/chromedriver");
- //无界面参数
- options.addArguments("headless");
- //禁用沙盒
- options.addArguments("no-sandbox");
-
- WebDriver driver = new ChromeDriver(options);
- driver.get("http://www.baidu.com");
- //打印百度的title
- System.out.println(driver.getTitle());
- return driver.getTitle();
-
- }
下面是运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。