Używam usługi Django, która uruchamia chromowane sterowniki dla selenu i zeskrobuje stronę z danymi. Usługa Django jest wywoływana przez inną usługę Java za pośrednictwem protokołu HTTP.Wiele procesów chromowania po chromedriver.quit()
Oto kod:
views.py
path_to_chromedriver = '/path/to/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
try:
response = get_data(browser)
except Exception as e:
print str(e)
finally:
browser.close()
browser.quit()
scraper.py
get_data(browser)
try:
.
.
.
for i in range(1,6):
try:
.
.
.
return "success data"
except NoSuchElementException:
browser.back()
raise Exception("No results found")
except Exception as e:
print str(e)
raise
Problem polega na tym, że po zakończeniu obsługi Java czyni wszystko połączenia i cały proces jest zakończony, jest od 25 do 50 chromowanych procesów osieroconych n RAM zajmujący ponad 1 GB. Czy coś tu jest nie tak?
Co to jest wersja "sterownika"? Wiem, że stare wersje miały ten problem. – Guy
Witam, używam ChromeDriver 2.27, więc nie sądzę, że to jest problem. Masz pojęcie o stop_client()? – Anirudh