Я запускаю сценарий python, который использует селен, на экземпляре EC2 (ubuntu).
По моему плану AWS у меня 2 ГБ памяти. Я обновился до бесплатной версии после некоторых проблем с производительностью моего скрипта. Однако, когда я проверяю свободную память при подключении к серверу Ubuntu, я вижу только 348 МБ свободной памяти и 353 МБ свободной памяти!
На данный момент у меня запущено только два python скрипты, один раз в день, используя crontab. Скрипты запускают довольно длинный массив 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()
Может кто-нибудь увидеть в этом коде внутреннюю проблему, которая может вызвать утечку памяти? Я думаю, что свободная память должна снова увеличиться go, когда скрипт прекратит работу, но это не так.
Я попытался вызвать driver.close()
в for-l oop, так что после информации извлекается из каждого URL, окно закрывается. Я думал, что это поможет с утечкой памяти - к сожалению, это дало мне ошибку selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id
.
Любая помощь будет принята с благодарностью. Я нахожусь на правильном пути с driver.close () или с чем-то другим проблема?