Chaya爬虫学习 —— Selenium之安装Chrome驱动

最近在学习爬虫课堂中开始学习Selenium自动化工具。按照老师的话来说就是模拟人来操控浏览器。由于我经常使用的浏览器Chrome容易自动更新,如果下载固定的浏览器驱动器有点跟不上时代的感觉,因此我决定使用通过python加载ChromeDriver,这样就能保证自己下载的包紧跟Chrome更新的潮流了。

运行环境:Win10专业版-21H1

刚开始本来打算跟着官网运行的,但是发现走到一半,就报错了。为了解决官网没有说清楚的细节,这篇文章就此诞生了。Selenium官网如下 ↓

Install browser drivers | Seleniumhttps://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/

一、跟着官网操作

这是我跟着官网操作的大致步骤,其中数字代表着如何找到我对应操作的官网步骤,蓝色框也解释了我为什么使用这个方法 —— “大多数机器会自动更新浏览器,但驱动程序不会。为确保您获得正确的浏览器驱动程序,有许多第三方库可以为您提供帮助。”

导入包的时候记得 ↓

pip install webdriver_manager

 因为是第三方的库,不加载下载会报错说你没有这个包

下载往后按照官网走的时候你会发现一个问题

 它会报错:NameError: name 'Service' is not defined

奇了怪了,我明明是按照官网走的,为什么说我没有被定义,这个不是包里面原本就有的吗?

二、解决'Service'没有被定义的问题

在网上找了很久,终于发现这个Service是selenium中webdriver里面的chorme包中service包里面的一个函数,重新导入包后

 名字定义的问题解决了,但是新的问题又出现了:ValueError: check_hostname requires server_hostname

好叭╮(╯-╰)╭,一个问题解决了又有新的问题出现了。

三、解决版本问题

查看了很多资料,大部分都是说我之前下载request包的时候,顺带下载的urllib3版本过高导致报错,最后在 stack overflowhttps://stackoverflow.com/questions/66642705/why-requests-raise-this-exception-check-hostname-requires-server-hostname 确定了我的修改方案

这里我使用的命令是: 

pip install urllib3==1.26

下载过程: 

 注意:

  • 如果输入pip install的时候出现关于user的报错,请用管理员权限打开
  • 上面显示我所下载的selenium最小匹配的urllib3是1.26版本,所以我从网址提供的版本从1.25转移到了1.26

四、成功解决

 完整代码如下:

# 导包之前请先下载好对应的包
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 出现 host 问题的报错,请下载目前所下载的 selenium 所适配的 urllib3 的最低版本即可
service = Service(executable_path=ChromeDriverManager().install())

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值