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

 后續有遇到問題再來更新,各路大神可以在評論指出不足,或者一起探討


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM