Linux安装selenium执行Python程序
-
配置python运行环境
-
安装selenium,
pip install selenium
-
安装chrome
提供下载网站chromedownloads,下载google-chrome-stable_current_amd64-75.0.3770.80.deb
1
2
3
4
5
6
7
8
9
10
11
12sudo apt-get install libxss1 libappindicator1 libindicator7
注意需要先把google-chrome-stable_current_amd64-75.0.3770.80.deb 下载下来
sudo dpkg -i google-chrome-stable_current_amd64-75.0.3770.80.deb
执行sudo dpkg -i google-chrome*.deb后报错的话,那就执行一下sudo apt-get install -f
安装后在/usr/bin目录下查看是否有google-chrome文件
检查chrome版本:
google-chrome-stable --version
当时无法查到版本,并报错error while loading shared libraries: libasound.so.2,
输入sudo apt-get install -f后解决
google-chrome-stable --version -
直接按照浏览器版本去找对应的driver就行了。(如果不能完全一一对应,就找大版本号(主版本号)对应、次版本号比浏览器版本号稍大的都行), 此外,对于windows的用户来说,win64的操作系统用win32的就行。
1
2
3
4
5
6
7
8
9
10
11
12wget -N http://chromedriver.storage.googleapis.com/75.0.3770.8/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo chmod +x chromedriver
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedrive
chromedriver -v
如果发现版本不对,chrome可以使用这样卸载:
yum remove google-chrome
chromedriver可以直接删除目录:
sudo rm -f /usr/bin/chromedriver -
编写python测试代码
1 | from selenium import webdriver |
我使用的xshell会提示我转发, 因此需要在会话中关闭该属性: 属性->连接->SSH->隧道->取消"转发X11连接到"的勾选
报错记录:
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.)
解决方法:添加参数chrome_options.add_argument(’–no-sandbox’)
1 | chrome_options = Options() |
更新
更新chrome
ubuntu,还有其他linux下的chrome不会自动更新,因为是通过包进行管理的,想要获取最新版本的chrome可以使用下面的方法: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
然后将安装包解压,会自动覆盖当前的chrome版本,插件什么的都不会变: 输入sudo dpkg -i ./google-chrome-stable_current_amd64.deb
后会提升:Unpacking google-chrome-stable (92.0.4515.159-1) over (75.0.3770.80-1) …
更新chromedriver
在镜像网站下载合适的版本: http://npm.taobao.org/mirrors/chromedriver/
再解压更新:
1 | unzip chromedriver_linux64.zip |
附录
pyenv:Linux下多Python版本管理工具
在开发Python程序的时候,有时候可能需要在不同版本的Python上进行测试、运行。pyenv就是这么一个管理多版本Python的工具。由于在Windows中我们可以同时安装多个版本的Python,并且通过Pycharm手动选择想要版本的解释器,但是在Linux下就没那么方便了,所以这里是在Linux下介绍该工具。
安装
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
Github链接:https://github.com/pyenv/pyenv-installer, 这个bash脚本中主要是得将pyenv克隆到用户目录下去,由于网络链接的问题,这个非常容易失败。我的建议是直接吧内容复制下来后写成pyenv_installer.sh
文件,然后命令行运行bash pyenv_installer.sh
,而不是curl -L xx |bash
。
1 | Cloning into '/home/mrli/.pyenv'... |
很容易失败,在调好网络链接后,能做的只有多次尝试(我花了两个半小时才下下来)
增加环境变量
1 | sudo vim ~/.bachrc |
Author: Mrli
Link: https://nymrli.top/2019/09/24/Linux安装selenium执行Python程序/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.