【发布时间】:2020-03-26 17:24:56
【问题描述】:
我正在一个 EC2 实例 (ubuntu) 上运行一个使用 Selenium 的 Python 脚本。
根据我的 AWS 计划,我有 2 GB 内存。在我的脚本出现一些性能问题后,我从免费版本升级到此版本。但是,当我在连接到 Ubuntu 服务器时检查可用内存时,我只看到 348MB 的可用内存和 353MB 的可用内存!
到目前为止,我只使用 crontab 运行两个 Python 脚本,每天一次。这些脚本会运行相当长的 URL 数组,并从每个 URL 中获取信息。
base_url = 'https://www.bandsintown.com/en/c/san-francisco-ca?page='
events = []
eventContainerBucket = []
for i in range(1,25):
#cycle through pages in range
driver.get(base_url + str(i))
pageURL = base_url + str(i)
# get events links
event_list = driver.find_elements_by_css_selector('div[class^=_3buUBPWBhUz9KBQqgXm-gf] a[class^=_3UX9sLQPbNUbfbaigy35li]')
# collect href attribute of events in even_list
events.extend(list(event.get_attribute("href") for event in event_list))
allEvents = []
for event in events:
driver.get(event)
//do a bunch of other stuff
driver.quit()
此代码中是否存在会导致内存泄漏的固有问题?我认为当脚本停止运行时,可用内存应该会再次增加,但事实并非如此。
我尝试在 for 循环中调用 driver.close(),以便在从每个 URL 检索到信息后,窗口关闭。我认为这将有助于解决内存泄漏 - 不幸的是,这给了我一个错误 selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id。
我是在使用 driver.close() 的正确道路上还是完全是其他问题?
【问题讨论】:
标签: python selenium amazon-ec2 selenium-chromedriver ubuntu-14.04