python - 使用 Selenium GeckoDriver 和 Firefox 时是否可以减少内存 RAM 消耗

标签 python selenium selenium-webdriver memory-management webdriver

我使用 Selenium 和 Firefox webdriver 以及 python 从网站上抓取数据。

但在代码中,我需要访问该网站超过 10k 次,并且会消耗大量 RAM。

通常,当脚本访问该站点 2500 次时,它已经消耗了 4GB 或更多的 RAM,并且停止工作。

是否可以在不关闭浏览器 session 的情况下减少内存 RAM 消耗?

我问这个是因为当我启动脚本时,我需要手动登录网站(双因素身份验证,下面未显示代码),如果我关闭浏览器 session ,我将需要登录网站再次。

for itemLista in lista:
    driver.get("https://mytest.site.com/query/option?opt="+str(itemLista))

    isActivated = driver.find_element_by_xpath('//div/table//tr[2]//td[1]')
    activationDate = driver.find_element_by_xpath('//div/table//tr[2]//td[2]')

    print(str(isActivated.text))
    print(str(activationDate.text))

    indice+=1
    print("numero: "+str(indice))

    file2.write(itemLista+" "+str(isActivated.text)+" "+str(activationDate.text)+"\n")

#close file
file2.close()

最佳答案

我发现如何避免内存泄漏。

我只是用

time.sleep(2)

之后

file2.write(itemLista+" "+str(isActivated.text)+" "+str(activationDate.text)+"\n")

现在 Firefox 可以在不消耗大量 RAM 的情况下工作

简直就是完美。

我不知道为什么它停止消耗这么多内存,但我认为它正在增加内存消耗,因为它没有时间完成每个 driver.get 请求。

关于python - 使用 Selenium GeckoDriver 和 Firefox 时是否可以减少内存 RAM 消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54028375/

相关文章:

python - 使用正则表达式将多行脚本输出转换为字典

python - 用django自己加入postgresql

javascript - 如何在 Python Webdriver 中执行 javascript

java - 无法从 Eclipse 市场安装 TestNG,出现以下错误 :

python - 如何根据 HTML 通过 Selenium 和 Python 将文本发送到文本区域

python - selenium.common.exceptions.ElementNotVisibleException : Message: element not visible while trying to access an element with Python + Selenium

python - 让selenium在python中使用默认配置文件启动safari

python - 在 Pandas 的多列中使用 NaN 值

python - 为什么每次在 Selenium Webdriver 中,任何 Web 元素的 “ID” 都会发生变化?

Python Selenium 网页抓取 - 隐藏文本/Javascript?