想学习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/),打开后页面如下图:
但这里的链接保存下来后是下图这样空白无用的东西。
所以建议还是直接翻墙去官网(http://chromedriver.chromium.org/downloads)查看官方指导。
找到自己的version比如我是81开头的,就下载它提供的对应的驱动版本。
不能翻墙的,建议到这个网址(https://chromedriver.storage.googleapis.com/index.html)进行下载,选择对应版本文件夹内的zip文件,而不是LATEST XXX的那种空白文件!!
第三步:解压驱动并提取驱动位置
将zip解压后会得到下图这样的文件
右键点击,显示简介,把“位置”后面的这一串都选择上,拷贝(command+c)
如果想验证自己复制得是否正确,随便打开一个记事本或备忘录,粘贴,就能看到这串文字的“真实地址”
第四步:安装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恢复模式。
进入恢复模式后打开【实用工具】——【终端】
在终端输入命令csrutil disable,然后关闭终端。(如果要重新开启,同样的方法输入csrutil enable)
最后重启电脑即可。
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了不少技能……
谢谢各位大神在网上的无私奉献,我也在文章中直接转载了不少内容。若有侵犯到的,请与我联系将其删除。