docker selenium 使用心得

最近爬虫遇到了反爬策略较高的站点,通过百度了解到 selenium + chrome。

开始想着自己搭建环境,即 java + selectnium + chrome + chrome_driver。在搭建的过程中发现在兼容chrome的时候坑多, 最终放弃并选择了docker

# 搜索镜像  docker search 镜像名称
docker search  selenium

# selenium/base: 包括 Selenium Server Jar包的基础镜像
# selenium/hub: Selenium Grid Hub 节点
# selenium/node-base: Selenium Node 节点的基础镜像
# selenium/node-chrome: 安装有 Chrome 的 Selenium Node 节点镜像
# selenium/node-firefox: 安装有 Firefox 的 Selenium Node 节点镜像
# selenium/node-chrome-debug: 安装有 Chrome 的 Selenium Node 节点镜像,包含远程桌面
# selenium/node-firefox-debug: 安装有 Firefox 的 Selenium Node 节点镜像,包含远程桌面
# selenium/standalone-chrome: 安装有 Chrome,独立运行的 Selenium
# selenium/standalone-firefox: 安装有 Firefox,独立运行的 Selenium
# selenium/standalone-chrome-debug: 安装有 Chrome,独立运行的 Selenium,包含远程桌面
# selenium/standalone-firefox-debug: 安装有 Firefox,独立运行的 Selenium,包含远程桌面

# 在列表中找到想用的版本 我选择  selenium/standalone-chrome
docker pull selenium/standalone-chrome

# 启动容器
docker run -d --name chrome -p 4444:4444  --shm-size="2g" selenium/standalone-chrome
# -d 后台运行容器 
# --name 给运行的容器命名
# -p 宿主机暴露端口:映射到容器内部的端口
# --shm-size="分配给容器的内存" 

# 容器运行起来后,用facebook团队开发的 php-webdriver
# 进入项目目录
cd your_project_path
# 安装 php-webdriver
composer require php-webdriver/webdriver
# 安装后使用教程可参考  https://github.com/php-webdriver/php-webdriver

 

# 在使用过程中,遇到docker 不可访问外网 
# 检查ip转发是否打开
sysctl net.ipv4.ip_forward
# 输出 net.ipv4.ip_forward=0 
# 或者运行 
cat /proc/sys/net/ipv4/ip_forward 
# 输出 0 则表示ip转发未打开

# 临时打开ip转发 
echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久打开ip转发 
vim /etc/sysctl.conf # 修改 net.ipv4.ip_forward = 1
# 修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:
sysctl -p /etc/sysctl.conf

 后续有遇到问题再来更新,各路大神可以在评论指出不足,或者一起探讨

上一篇:Springcloud-alibaba微服务架构之Nacos下载安装(单机模式)


下一篇:下载chrome离线安装包