• 不让selenium自动关闭浏览器页面(闪崩)[vscode +edge]


    前言:

    看见网上这个的解决方法不是关于chrome就是关于pycharm

    像我这种平时喜欢用vscode和edge来写爬虫的遇到问题,真的是难绷😅😅😅

    用的是 vscode和selenium配合edge来实现:

    所需软件版本:

    python: 3.10.8.

    vscode 版本: 1.81.1 (user setup)

    selenium 版本: 4.5

    edge 版本:版本 116.0.1938.69 (正式版本) (64 位)

    问题:

    本来想用selenium模块来实现爬虫的,按照教成下载与edge版本对应的edge驱动,并将压缩包解压后将驱动放到python的根目录后,用vscode直接运行,浏览器出现然后立马关闭。

    这是运行的源代码:

    1. from selenium import webdriver
    2. options = webdriver.EdgeOptions()
    3. options.add_experimental_option("detach", True)
    4. driver = webdriver.Edge()
    5. driver.maximize_window()
    6. driver.get('https://www.baidu.com')

    然后,就在github,csdn以及包括selenium官方文档上寻找解决方法

    看来看去,差不多有这几种:

    1.去看驱动和浏览器版本是否能对上

    2.selenium 版本与浏览器版本对不上

    3.修改代码格式,例如这种:

    1. from selenium import webdriver
    2. # 打开浏览器驱动
    3. driver = webdriver.Chrome(r'd:\chromedriver.exe')
    4. driver.implicitly_wait(10)
    5. class ServiceConfig():
    6. # 定义prepareWork函数,做准备工作
    7. def prepareWork(self,url):
    8. driver.get(url)
    9. if __name__ == '__main__':
    10. url = 'https://www.baidu.com'
    11. sc = ServiceConfig()
    12. sc.prepareWork(url)

    还有这种:(也就是官方给的答案)

    1. from selenium import webdriver
    2. # 获取配置对象 => 什么样的浏览器就选择什么浏览器配置
    3. option = webdriver.ChromeOptions()
    4. option.add_experimental_option("detach", True)
    5. # 获取driver对象, 并将配置好的option传入进去
    6. driver = webdriver.Chrome(options=option)
    7. driver.get('https://www.baidu.com')

    可是呢,我就算把官方给的例子拿到vscode里跑,仍然是闪退。

    说实话,真的有点难绷。

    但是一想到,要准备写个爬虫去自动填写问卷(学校志愿者难抢,生活所迫),再不抢就g了。

    然后就当我准备睡觉的时候,

    看见csdn上有个博主在说,这个原因好像是ide自动回收内存,然后vscode会关。就抱着试一下的态度,直接在cmd命令行输入,这次没有闪退。

    然后再在VScode上运行,又闪退了,怪了。

    问题解决:

    最后

    试着在vscode上先用交互窗口运行:

    from selenium import webdriver

    然后再在交互窗口输入:

    1. options = webdriver.EdgeOptions()
    2. options.add_experimental_option("detach", True)
    3. driver = webdriver.Edge()
    4. driver.maximize_window()
    5. driver.get('https://www.baidu.com')

    运行,浏览器不闪退了。

    补充:

    1.关于selenium的版本问题:

    我试着用新版的selenium但是延时有点长,然后将版本退回到了4.5

    这是selenium退回旧版本的代码:

    1. # 先卸载selenium
    2. pip uninstall selenium
    3. # 然后安装
    4. pip install selenium==4.5

    2.本人医学牲一名,为了抢学校志愿者被迫学习python爬虫自动化,也没学多久,对计算机这块也不是很了解,所以不一定能解答各位的问题,就麻烦大家去网上多浏览一下寻找自己的解决方法哩。💐💐💐

  • 相关阅读:
    解决Redis启动:未找到命令的问题
    【 java 常用类】日期相关 API 操作
    STM32F4X UCOSIII任务消息队列
    搞懂三极管
    Simulink从0搭建模型03-Enabled Subsystem 使能子系统
    微信小程序毕业设计-英语互助系统项目开发实战(附源码+论文)
    使用iframe预览pdf;
    Nvidia GPU 入门教程之 06 如何在 Python 中将 Torch 张量从 CPU 移动到 GPU
    汽车射频之基础
    医疗与大模型:重塑未来医疗生态的营销之道
  • 原文地址:https://blog.csdn.net/2302_79586235/article/details/132644218