介绍配置之前我想说一说我的心路历程
其实很早之前就了解了selenium,也是曾今在写豆瓣相册爬虫(有兴趣戳一下源码)的时候遇到麻烦的反爬机制的困难时,查到想用的方法之一,但是本着尽量不要曲线救国的想法,想出了更好的解决办法。
来说说Selenium + Python + BrowserDriver其实是用来作web自动化检测的好工具,作用是模拟人的操作行为在浏览器里自动操作网页。简单来说就是基于网页的测试,比如往表单里填各种乱七八糟的值,戳一戳提交按钮,看看有什么bug。
然而Selenium + Python 配合BeautifulSoup或者re也可以成为模拟真实用户的爬虫,这个优点就是可以自如应对动态加载的网页的,还包括需要登录的网页。虽然我觉得所有动态加载网页都可以有办法用静态方式,分析链接和css布局来爬取。但是多一条路多一种选择,走完了才知道哪条路远一些,喊声最大的一般都是在起点犹豫的。当然用Selenium爬取缺点也很明显,就是当爬取得量一大速度明显很慢,满足不了大数据量的爬取方式。我觉得因为这是一种模拟用户行为,当正常爬虫已经得到请求了,这边还在submit,所以你说呢(欢迎指正)。
进入正题,环境配置
关于如何安装Selenium,不多说了google it.
我这里说一下PyCharm的package管理真的是良心,我装了python3.5,之前有一些包在terminal里死活装不上3.5里,找了各种办法,堪比Windows下VS环境配置。最后我发现PyCharm可以对不同版本的包进行一站式管理。
添加,删除都可以操作,如果在非系统版本安装遇到问题,先对系统版本的同名package进行操作,比如删除安装。再到你要安装的版本操作,比如Selenium。
接下来说一下安装ChromeDriver,首先下载ChromeDriver executable这里装最新版本就可以了,没有什么版本限制。解压放到一个路径里(只要你能找得到就好),到这里就是路径的配置,其实没有那么麻烦。我选择每次使用时候把chrome driver所在目录作为参数path传给web driver。
还有一种就是ChromeDriver目录加入到环境变量
我用的第一种。因为不是谁的电脑都愿意让你乱动环境变量对吧。
下面是官方文档的测试代码:
没报错就成功了。
如果报错像这样:
毫无疑问你的ChromeDriver路径问题。