我使用 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/