为了搭建python的chromewebdriver环境,我用了四个小时终于出关!!

想学习python爬虫,按照开课吧爬虫小课第10课要求搭建自动基本环境,真是什么坑都进了(心理无数个圈圈叉叉)
为了后面的童鞋少走点弯路,分享一下我的经验:

我是mac系统(Catalina,10.15.4)

第一步:安装selenium

很容易,按照课程或网上的指导就能顺利安装。这里跳过不叙述。

第二步:下载chromedriver

从这里开始我就开始脑壳疼。避坑指南如下

避坑1注意要选择和自己chrome的版本一致的驱动,不然网上很多人说会出问题。这点课程上没写清楚。

避坑2:为了查看自己的chrome版本,在查看“关于Google Chrome”时,打开页面的同时chrome就会自动升级。两个解决方法:

///////方法一:在查看前,先去把chrome的自动更新关闭。关闭方法参考下面链接的“正确姿势二”

可能在有些Mac上发现在“/Library”这个根目录下没有Google目录,那么其实在“~/Library”这个用户目录下也有一个Google目录。在该目录下执行操作同样可以禁用自动更新。请执行以下命令:

cd ~/Library/Google
sudo chown root:wheel GoogleSoftwareUpdate

相当于修改了GoogleSoftwareUpdate这个文件夹的拥有者,而不仅仅是修改了权限,使Google对该文件夹没有写入权限。事实证明这种方式是可行的。重启Chrome完成以后通过“帮助->关于Google Chrome”可以查看信息:
————————————————
版权声明:本文为CSDN博主「乞力马扎罗的雪CYF」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenyufeng1991/java/article/details/78568919

///////方法二:我就是直接本能反应地去查看版本了,然后被升级到近两天刚发布的 81.0.4044.113(正式版本)。因此我花费了很多时间研究如何关闭自动更新以及如何降级,最后发现——无所谓有没有被升级!最新版本的chrome依然可以用对应版本的驱动!!

那我为什么还要介绍方法一呢?因为升级都有风险,既然开始学编程相关的技术活了,就让软件都尽量稳定一点吧。反正我最后是把我的自动更新关闭了。

避坑3:课程上给的下载地址、以及网上很多搭建环境教学帖子介绍的淘宝镜像网址(http://npm.taobao.org/mirrors/chromedriver/),打开后页面如下图:

通过这次学会了直接在chrome上截网页长图

但这里的链接保存下来后是下图这样空白无用的东西。

没用的文件

所以建议还是直接翻墙去官网(http://chromedriver.chromium.org/downloads)查看官方指导

仔细看指导就知道版本仅需要精确到第一组数就够了

找到自己的version比如我是81开头的,就下载它提供的对应的驱动版本。

不能翻墙的,建议到这个网址(https://chromedriver.storage.googleapis.com/index.html)进行下载,选择对应版本文件夹内的zip文件,而不是LATEST XXX的那种空白文件!!

第三步:解压驱动并提取驱动位置

将zip解压后会得到下图这样的文件

长这样

右键点击,显示简介,把“位置”后面的这一串都选择上,拷贝(command+c)

image

如果想验证自己复制得是否正确,随便打开一个记事本或备忘录,粘贴,就能看到这串文字的“真实地址”

image

第四步:安装chromedriver驱动

这里又是很多坑,有些帖子说很简单就安装完了,但我却遇到比较多问题。

网上也是说有两种方法。方法一直接在finder前往/usr/bin然后将刚才的文件拖进来。但我是不行的,在拖动过程中鼠标会变成🚫也就是禁止直接拖动。所以我还是用方法二,即在终端操作:

step1--打开终端,先进入驱动所在的文件夹,不然无法直接应用step2的命令(会报no file)。输入下列命令:(你们就应该输入“cd 真实地址(command+v)”)

cd /Users/fylia/Desktop/Python

step2--将驱动移动到/usr/bin内。输入下列命令:

sudo mv chromedriver /usr/bin

有些人到这里就成功了。但我第一次输入后,不记得是什么反馈了,反正没移动成。网上有人说是因为SIP系统保护或rootless机制等等,关闭SIP方法在下面链接写得最为详细(https://blog.csdn.net/weixin_34179762/article/details/93404454)这部分内容我就在step3照搬过来了,出处在链接内。

step3--关闭SIP保护

电脑重启,在开机时按住 command + R 键,直到出现苹果 logo 和进度条时松开,进入OS X恢复模式。
进入恢复模式后打开【实用工具】——【终端】

image

在终端输入命令csrutil disable,然后关闭终端。(如果要重新开启,同样的方法输入csrutil enable)
image

最后重启电脑即可。

step4--再一次重复step1&2看是否成功。(检测是否成功的方法就是看bin文件夹内是否有chromedriver,用搜索是找不到的,只能按文件名排序然后去ch打头的那部分去找)

这次输入后,我却又出现了下列反馈:
mv: rename chromedriver to /usr/bin/chromedriver: Read-only file system
然后百度的时候我又找到这样的一篇文章,参考类似的问题(出处https://www.jianshu.com/p/a7e7bbcb913d),我试着直接执行如下命令挂载写入权限

sudo mount -uw /

这时候再试一次sudo mv chromedriver /usr/bin,终端没什么反馈。但是现在我们去bin文件夹就可以看到chromedriver已经在里面了。

马赛克,是我走过的没必要的弯路

这时候我再用课程上的体验代码去vscode里测试,终于成功!!撒花!!!!


这几个小时的坑其实还有好多没写,但顺便get了不少技能……
谢谢各位大神在网上的无私奉献,我也在文章中直接转载了不少内容。若有侵犯到的,请与我联系将其删除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容