不让selenium自动关闭浏览器页面(闪崩)[vscode +edge] |
您所在的位置:网站首页 › pdf打开后自动关掉 › 不让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直接运行,浏览器出现然后立马关闭。 这是运行的源代码: from selenium import webdriver options = webdriver.EdgeOptions() options.add_experimental_option("detach", True) driver = webdriver.Edge() driver.maximize_window() driver.get('https://www.baidu.com')然后,就在github,csdn以及包括selenium官方文档上寻找解决方法 看来看去,差不多有这几种: 1.去看驱动和浏览器版本是否能对上 2.selenium 版本与浏览器版本对不上 3.修改代码格式,例如这种: from selenium import webdriver # 打开浏览器驱动 driver = webdriver.Chrome(r'd:\chromedriver.exe') driver.implicitly_wait(10) class ServiceConfig(): # 定义prepareWork函数,做准备工作 def prepareWork(self,url): driver.get(url) if __name__ == '__main__': url = 'https://www.baidu.com' sc = ServiceConfig() sc.prepareWork(url)还有这种:(也就是官方给的答案) from selenium import webdriver # 获取配置对象 => 什么样的浏览器就选择什么浏览器配置 option = webdriver.ChromeOptions() option.add_experimental_option("detach", True) # 获取driver对象, 并将配置好的option传入进去 driver = webdriver.Chrome(options=option) driver.get('https://www.baidu.com')可是呢,我就算把官方给的例子拿到vscode里跑,仍然是闪退。 说实话,真的有点难绷。 但是一想到,要准备写个爬虫去自动填写问卷(学校志愿者难抢,生活所迫),再不抢就g了。 然后就当我准备睡觉的时候, 看见csdn上有个博主在说,这个原因好像是ide自动回收内存,然后vscode会关。就抱着试一下的态度,直接在cmd命令行输入,这次没有闪退。 然后再在VScode上运行,又闪退了,怪了。 问题解决:最后 试着在vscode上先用交互窗口运行: from selenium import webdriver然后再在交互窗口输入: options = webdriver.EdgeOptions() options.add_experimental_option("detach", True) driver = webdriver.Edge() driver.maximize_window() driver.get('https://www.baidu.com')运行,浏览器不闪退了。 补充:1.关于selenium的版本问题: 我试着用新版的selenium但是延时有点长,然后将版本退回到了4.5 这是selenium退回旧版本的代码: # 先卸载selenium pip uninstall selenium # 然后安装 pip install selenium==4.52.本人医学牲一名,为了抢学校志愿者被迫学习python爬虫自动化,也没学多久,对计算机这块也不是很了解,所以不一定能解答各位的问题,就麻烦大家去网上多浏览一下寻找自己的解决方法哩。💐💐💐 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |