菜鸟的配置过程
#更新源
sudo apt-get update
#pip3安装(ubuntu自带python但是没有安装pip)
sudo apt install python3-pip
#安装selenium
pip install selenium
webdriver下载网站
http://chromedriver.storage.googleapis.com/index.html
chrome下载网站
https://www.chromedownloads.net/chrome64win-stable/
随便选择一个版本号对应的下载即可
将chrome下载文件中的deb格式安装(rpm包舍弃)
#更新源
sudo apt-get update
#安装谷歌
sudo dpkg -i google-chrome-stable_current_amd64.deb
#报错安装谷歌依赖重复第二步
sudo apt-get -f install
将chromedriver加入环境
mv chromedriver /usr/local/bin/
chmod 777 /usr/local/bin/chromedriver
查看chrome的版本
google-chrome --version
查看chromedriver的版本
终端输入
chromedriver
查看两个版本相同即可
加入代码以root用户运行
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
无头运行
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
无头模式需要设置游览器大小,如果太小的游览器则一些元素定位不到
browser = webdriver.Chrome(options=chrome_options)
browser.set_window_size(2000, 2000)
browser.maximize_window()
无法使用下xpath方法定位元素(有木有大佬告诉我一下是什么原因)
#导入新版本查找定位的包
from selenium.webdriver.common.by import By
#使用傻傻的方式定位
browser.find_elements(By.CLASS_NAME, 'fine-font')[12].click()
crontab定时启动selenium脚本时,需要把环境变量以绝对路径传入
#新版本导入路径 需导入包
from selenium.webdriver.chrome.service import Service
service=Service('/root/python_pro/chromedriver')
省略
browser = webdriver.Chrome(service=service,options=chrome_options)
等待sleep 云服务器带宽低 请延长等待时间
#跳转新页面 在implicitly_wait后加入sleep强制延时
#因为有些网站异步加载
browser.implicitly_wait(5)
time.sleep(5)
implicitly_wait只需声明一次 整个driver生命周期都可以使用
建议使用Firefox配合selenium,chrome无头模式非常龟速
火狐游览器下载链接
http://releases.mozilla.org/pub/firefox/releases/
火狐驱动
https://github.com/mozilla/geckodriver/releases/tag/v0.31.0
使用方法与chrome一致