使用selenium 和 chromedriver遇到的一些问题
前言
当准备开始爬虫的第三个练习爬取淘宝美食的时候,根据学习教程需要用到selenium(一款比较优秀的web端自动化测试框架),已经配合使用谷歌浏览器的驱动chromedriver。最开始我觉得只要下载了selenium安装包以后,然后在下载chromedriver(我以为是插件一类,安装在Google浏览器就行)就完事OK了,但是不然,现在简单记述一下我配置的过程,我的电脑系统是MacOS。
安装selenium
- 我查到的安装方法大致分为两类,一种是用
pip install -U selenium
但是试了很多次都报错,以现在的水平也暂时看不太懂, - 转战另外一种安装方式,用
homebrew
,貌似最近几次我框架安装的时候遇到问题,brew install selenium-server-standalone
,成功 - 安装完以后一脸懵逼,根据提示,启动服务
selenium-server -port 4444
,启动了再根据提示0.0.0.0:4444
,这个就是说外网也可以访问,然后我用本地访问,发现服务启动了,z至此selenium算是安装成功了
selenium服务启动成功
pycharm以及Python环境遇到的坑
-
当selenium安装结束以后,我在pycharm新建项目准备测试的时候,发现selenium无法导入一直爆红
(from selenium import webdriver
),
执行项目报错
ImportError: No module named selenium
,
后来反复查看确实是安装成功了,但是项目引用不到,忘记从哪里看到,有可能是路径问题,我看了一眼selenium的安装路径,也没问题
brew info selenium-server-standalone
-
后来经过反复查询发现在Python环境的site-packages目录下,确实没有selenium,然后去新建项目的时候发现系统中转了几套Python环境,但是系统自带的确实没有selenium
-
最终在另外一套带有selenium的环境中新建项目,解决😓,顺便记录一下路径
/usr/local/lib/python2.7/site-packages/seleniu
chromedriver的坑
- 本想今天一天时间在学习一套爬虫项目,但是前边的坑坑坑就弄了一上午,下面说下chromedriver
- 在前言中我觉得chromedriver是个插件,下载了就好,但是最后下载了然后写测试代码,理论上讲应该呼起一个谷歌浏览器,但是
from selenium import webdriver
dr = webdriver.Chrome()
报错信息如下
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
第一感觉是把chromedriver
放下项目目录之下,项目能自动搜躲到,但是不能,后来经过百般Google,查到一个办法
import os
chromedriver = "/usr/local/Cellar/chromedriver/2.28/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()
依旧报错,后来又是偶然,发现chromedriver不单单是光下载就行了,也是一个单独的软件吧,所以依旧使用homebrew进行了安装brew install chromedriver
,然后回看bin目录/usr/local/Cellar/chromedriver/2.28/bin
,将其复制到上边的代码chromedriver =
的后边,见证奇迹的时刻,运行终于呼起了Google浏览器
- 然后还不算完,我觉得这样的路径肯定太特殊了,既然涉及到bin,
那么一定有一种配置环境变量的方式,结果真有😁😁😁
vim ~/.bash_profile
export PATH=$PATH:ChromeDriver目录(注意,是存放的目录,不是这个文件,就是bin的目录)
:wq
source ~/.bash_profile
简言之,就是在 ~/.bash_profile 文件中加入
export PATH=$PATH:ChromeDriver的bin路径
- OK,结束