Selenium、Webdriver 正在超载内存

问题描述 投票:0回答:1

我需要打开选项卡并收集数据并关闭选项卡。大约 600 个标签。

问题在于 Chrome 驱动程序会因每个新选项卡而导致内存过载。即使关闭使用

driver.close()
,使用的内存也几乎不会减少。
driver.quit()
将终止会话,所以我不使用它。我在任务管理器中跟踪了 Chrome 过载,问题不在于收集的数据,而在于打开新选项卡。

为什么关闭标签后仍然占用内存以及如何处理?

附注该网站和代码仅作为打开和关闭选项卡的示例

from selenium import webdriver
import time
driver = webdriver.Chrome()
url = 'https://edition.cnn.com/'

driver.get(url)
for i in range(25):
    time.sleep(0.5)
    driver.execute_script("window.open();")
    driver.switch_to.window(driver.window_handles[-1])
    driver.get(url)
    driver.close()
    driver.switch_to.window(driver.window_handles[0])

python selenium-webdriver memory webdriver
1个回答
0
投票

打开和关闭多个选项卡时,Selenium WebDriver 会遇到内存过载,这是一个已知问题。每个打开的选项卡都会使用更多的内存,尽管 Selenium 的“driver.close()”技术旨在关闭选项卡,但它并不一定会释放与之相关的所有内存资源。随着时间的推移,这可能会导致 RAM 膨胀,特别是在管理大量选项卡时。

您可以通过退出 WebDriver 实例 (driver.quit()) 并定期创建一个新实例来完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.