Теневое выполнение скрипта Python
Как можно объяснить такой феномен, когда код на основе Selenium (парсинг Инстаграма в цикле) выполняется даже после закрытия среды разработки? Или консоли. Пример: код открывает браузер и тыкает кнопки на странице. Убиваю процесс терминала, терминал закрыт, но браузер циклически открывается и продолжает выполнять скрипт! Закрытие браузера не помогает. MacOS. В мониторинге системы следов питона или чего то подобного нет.
Скрипт простой, многопоточности нет. Ядро скрипта в цикле while, но поскольку там селениум, который останавливает поток до завершения загрузки страницы, то проблема не в цикле явно.
Сам код (звездочками закрыл личные данные):
#! /usr/bin/env python
# -*- coding: utf-8 -*-
while True:
try:
import pickle
from selenium import webdriver
import time
import random
browser = webdriver.Chrome('/usr/local/bin/chromedriver')
br = browser
br.get('https://www.instagram.com/')
time.sleep(random.randint(1,5))
login = br.find_element_by_name("username")
login.clear()
login.send_keys('***')
password = br.find_element_by_name('password')
time.sleep(random.randint(1,5))
password.clear()
time.sleep(random.randint(1,5))
password.send_keys('***')
time.sleep(random.randint(1,5))
submit = br.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div[1]/div/form/div[4]/button')
submit.submit()
time.sleep(random.randint(1,5))
pickle.dump([br.get_cookie('sessionid')], open('***.plk',"wb"))
cookies = pickle.load(open('***.plk', "rb"))
for cookie in cookies:
if 'expiry' in cookie:
del cookie['expiry']
br.add_cookie(cookie)
br.refresh()
print('Авторизация успешна!')
while True:
br.get('https://www.instagram.com/***')
f = br.find_element_by_xpath('//*[@id="react-root"]/section/main/div/header/section/ul/li[3]/a')
time.sleep(random.randint(1,3))
f.click()
time.sleep(random.randint(1,3))
f = br.find_element_by_xpath('/html/body/div[4]/div/div[2]/ul/div')
f = f.find_elements_by_tag_name('button')
try:
for i in f:
i.click()
time.sleep(random.randint(1,3))
br.find_element_by_xpath('/html/body/div[5]/div/div/div[3]/button[1]').click()
time.sleep(120 + random.randint(1,3))
except:
br.quit()
continue
except:
br.quit()
continue