【Python爬虫 • selenium】selenium4新版本自动获取驱动的常见问题

这篇具有很好参考价值的文章主要介绍了【Python爬虫 • selenium】selenium4新版本自动获取驱动的常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium4爬虫,Python专精,python,爬虫,selenium


前言

关于上次发布的文章《【Python爬虫 • selenium】selenium4新版本使用指南》很多人反馈说自动获取的驱动会导致闪退,本次文章给出详细配置。

首先说一下大家闪退的问题。我在低版本的python中,安装selenium,发现安装的是旧版本,并不是selenium4的版本,就导致用法还是selenium3,此时用我之前提供的selenium4的代码必然会报错,因此在本次文章中将会给出各种驱动的selenium3和selenium4版本的代码,供大家直接cv。

其次,本次文章还要让大家学会如何排错。selenium闪退原因其实很好排查的,一般来说,运行报错就会有提示,这些东西在正文中将会说明。


一、安装驱动

当前环境配置,python=3.10,

注意,确保你的python版本是高版本,低版本会自动安装selenium3,高版本会自动安装selenium4,如果你不明白你安装的selenium版本是多少,建议你使用pip list命令来查看一下
selenium4爬虫,Python专精,python,爬虫,selenium
我是用的python3.10安装了默认是4.7版本的selenium。

pip install webdriver-manager

然后安装selenium

pip install selenium

二、使用步骤

本次以Edge为例,因为我目前只有Edge是空闲的。

1.导入包

代码如下:

from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager

2.生成驱动

代码如下:

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

3.打开网站

我这里以打开我的博客为例,注意这里要做延时,否则闪退。

driver.get('https://blog.csdn.net/weixin_47754149?spm=1010.2135.3001.5343')
sleep(10000)

运行效果图如下

selenium4爬虫,Python专精,python,爬虫,selenium运行10秒后会自动关闭,说明确实是没有问题的。

二、selenium闪退问题处理

selenium闪退正常情况下是有两种问题导致的,一是selenium和你的代码版本不兼容,或者说你代码写错了,二是浏览器闪了一下就没了,这种情况不是你代码写错了,而是浏览器打开的时候代码执行完了。你只需要做一点适当的延迟即可。因此这里展开对第一种情况进行处理。

1. selenium版本与代码不匹配

这部分是最有可能遇到的错误。通常来说,你安装selenium的时候会自动识别你的python版本进行安装对应的版本,比如你用的python3.6,就会默认安装selenium3,如果你用的python3.10就会自动安装selenium4,因此确定你安装的selenium是哪个版本是非常重要的。

首先要确认你的selenium版本,使用以下命令

pip list

然后就会输出你当前环境中的包和版本号
selenium4爬虫,Python专精,python,爬虫,selenium其中需要找你的selenium,查看是哪个版本的
selenium4爬虫,Python专精,python,爬虫,selenium
然后根据你对应版本号来看你应该写selenium3还是selenium4的代码,这样就不闪退了。

2. selenium代码异常

这部分闪退问题基本上就说明了你代码功底不够扎实,这种问题属于语法错误,因为python是边解释边执行的,代码正确的会执行,错误代码及以后就不执行了,而且一些没有的字段和属性在开发中不会标注出来,所以新手是不好看出来的。

这种问题我的建议是使用IDE来进行开发,我推荐使用visual studio code,然后安装python插件,在状态栏那里选择你的python版本

selenium4爬虫,Python专精,python,爬虫,selenium
此时代码就会有提示了,如果你写的代码有问题就会在这里显示出来

selenium4爬虫,Python专精,python,爬虫,selenium有点开发经验的就直接加个异常处理就好了,就不细说了。

三、代码示例

此处代码专供cv使用,让你在cv的时候更爽,更直接。

1.selenium4代码示例

1. Chrome

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

2. Chromium

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromiumService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))

3. Brave

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as BraveService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(service=BraveService(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()))

4. Firefox

# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

5. IE

# selenium 4
from selenium import webdriver
from selenium.webdriver.ie.service import Service as IEService
from webdriver_manager.microsoft import IEDriverManager

driver = webdriver.Ie(service=IEService(IEDriverManager().install()))

6. Edge

# selenium 4
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

7. Opera

# selenium 3 & 4
from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager

driver = webdriver.Opera(executable_path=OperaDriverManager().install())

2.selenium3代码示例

1. Chrome

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

2. Chromium

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())

3. Brave

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install())

4. Firefox

# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

5. IE

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager

driver = webdriver.Ie(IEDriverManager().install())

6. Edge

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(EdgeChromiumDriverManager().install())

7. Opera

# selenium 3 & 4
from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager

driver = webdriver.Opera(executable_path=OperaDriverManager().install())

3. 提供的操作框架

import os

import requests
from requests import Response

from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.download_manager import WDMDownloadManager
from webdriver_manager.core.http import HttpClient
from webdriver_manager.core.logger import log

class CustomHttpClient(HttpClient):

    def get(self, url, params=None, **kwargs) -> Response:
        """
        在这里添加你的操作,session,代理等
        """
        log("这些将会被自定义的http客户端调用")
        return requests.get(url, params, **kwargs)


def test_can_get_chrome_driver_with_custom_http_client():
    http_client = CustomHttpClient()
    download_manager = WDMDownloadManager(http_client)
    path = ChromeDriverManager(download_manager=download_manager).install()
    assert os.path.exists(path)

总结

以上就是本期文章的所有内容了,主要是处理大家在使用自动获取驱动的时候遇到的问题,尽管问题总结不是很全面,但是已经触及到根本的方面了,那就是selenium和python版本一定要匹配才能安装selenium4。其次就是将一些selenium的代码贴出来便于大家直接cv,我相信这是很有用的,当你看到这篇文章发现可以直接cv那必然是很舒服的,我也是这么想的。

如果说你遇到了问题,并且不是以上这种的问题,那么请直接私信我。文章来源地址https://www.toymoban.com/news/detail-798974.html

到了这里,关于【Python爬虫 • selenium】selenium4新版本自动获取驱动的常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫实战(一)Python+selenium自动化获取数据存储到Mysql中

      行话说得好,“爬虫学得好,牢饭吃到饱!”哈哈博主是因这句话入的坑,不为别的就为邀大家一起铁窗泪(bushi),本人虽小牛一只,但是喜爱捣鼓技术,有兴趣的小伙伴们可以共同探讨,也欢迎各位大佬们的指点,愿共同进步!   这次计划是翻墙爬取外网某网站

    2024年01月17日
    浏览(48)
  • Python+Selenium4浏览器交互_web自动化(2)

    目录 0. 上节内容回顾 1 . 浏览器基本操作 1.1 启动 退出 1. 手动安装driver ,启动浏览器时,需要传递2个参数: 1.2 窗口设置 1.3 页面导航 1.4 获取页面信息 1.5 页面截图 2. 浏览器的高级操作 2.1 窗口切换 2.2 操作Cookies 2.3 执行JavaScript 今日内容:浏览器交互(调整窗口大小、导航

    2023年04月08日
    浏览(67)
  • Python+Selenium4三大等待&预期条件_web自动化(4)

    目录 0. 上节回顾 1. 定位失败的原因 2. 强制等待 3. 隐式等待 4. 显式等待 【重点难点】 4.1. 实例化 WebDriverWait 对象 4.2. 指定等待条件 4.3. 等待条件的具体要求 4.3. 1. 等待条件是一个函数 4.3. 2. 返回值是布尔值 4.3. 3. 只有一个参数,参数值是driver 4.3. 4. 出现异常 5. 流畅等待 (

    2024年02月11日
    浏览(48)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(79)
  • Python+Selenium4环境搭建与原理讲解_web自动化(1)

    1. 认识Selenium 2. Selenium 三大组件 3. Selenium自动化测试环境搭建 3.1 安装selenium 库 3.2 安装浏览器驱动 1. 查看浏览器版本号 2. 下载浏览器驱动 3. 把driver移动到Path目录 4. 验证driver就绪   3.3 启动浏览器 4. Selenium自动化测试环境的自动化配置 1. 安装依赖 2. 启动浏览器 5. Selenium工作

    2024年02月06日
    浏览(107)
  • Python Selenium4.3.0(新语法) web自动化测试工具

    1 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等 这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够

    2024年01月24日
    浏览(52)
  • Selenium4.0 + Python手撸自动化框架系列之 Web截图 与 封装

    在做Web自动化时,网页截图是常用的操作。像一般的自动化框架与工具都会有截图机制,比如: 1、元素等待失败触发截图 2、元素操作失败触发截图 3、检查点失败触发截图 4、主动要求的触发截图 四种场景,均可触发网页截图操作,将截图保存到对应某个路径下面。 那么

    2024年02月08日
    浏览(72)
  • 浏览器常用基本操作之python3+selenium4自动化测试(基础篇)

    1、打开指定的网页地址 我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现 1 2 3 from selenium import webdriver driver = webdriver.Edge() driver.get( \\\'https://www.baidu.com/\\\' )   # 本行用于访问指定的地址 2、获取当前页面url 我们在

    2024年02月01日
    浏览(77)
  • selenium自动获取cookies用于requests做接口请求爬虫

    目录 一、思想 二、代码          有关爬虫一些报错解决,或是爬虫工具的使用及其他问题的,可以看看我的爬虫专栏:博主_zkkkkkkkkkkkkk的爬虫专栏 一、思想         selenium可以用来模拟用户操作的python第三方包,而requests则是用来做接口请求。两者一结合,可能在某些

    2024年02月16日
    浏览(43)
  • Selenium4自动化测试框架

    Selenium 介绍 Selenium 是目前用的最广泛的 Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试,支持多种编程语言,目前已经被 google,百度,腾讯等公司广泛使用。 1、配置 google 驱动的环境变量,如果不配置需要在代码中指定驱动位置。 2、eclipse 中导入

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包