Добрый день всем!Я испытываю эту проблему уже неделю, но не думаю, что смогу ее решить, и я также не вижу решения, основанного на статьях в Интернете.Надеюсь, кто-то может помочь мне здесь ...
Мой сценарий: Мне нужно отслеживать цены из 6 разных таблиц на одной странице, которая меняется почти каждую секунду.К концу дня я бы закрыл браузер (нажав кнопку X) и завершил сценарий (нажав Control + C), а затем снова запустил его утром и позволил ему работать весь день.Сценарий написан на python и использует селен для чтения цен.Я использую браузер Chrome.Моя ОС - Windows 2008 R2;Версия Selenium - 3.14.1
, здесь есть частичная часть кода.Он просто читает цены в таблицах, используя find_elements_by_id внутри бесконечного цикла с интервалом в 1 секунду.
While True:
close1 = float(browser.find_element_by_id('bnaBox1').find_elements_by_id('lastprc1')[0].text.encode('ascii','ignore'))
close2 = float(browser.find_element_by_id('bnaBox2').find_elements_by_id('lastprc2')[0].text.encode('ascii','ignore'))
close3 = float(browser.find_element_by_id('bnaBox3').find_elements_by_id('lastprc3')[0].text.encode('ascii','ignore'))
close4 = float(browser.find_element_by_id('bnaBox4').find_elements_by_id('lastprc4')[0].text.encode('ascii','ignore'))
close5 = float(browser.find_element_by_id('bnaBox5').find_elements_by_id('lastprc5')[0].text.encode('ascii','ignore'))
close6 = float(browser.find_element_by_id('bnaBox6').find_elements_by_id('lastprc6')[0].text.encode('ascii','ignore'))
time.sleep(1)
...
В течение первых нескольких минут выполнения скрипты потребляют минимальное количествопроцессора (около 20 ~ 30 процентов), но через несколько минут потребление постепенно увеличивается до 100%!На компьютере не выполняются никакие другие процессы, кроме сценария.
Устранение неполадок, которые я проделал до сих пор (все они не решили мою проблему)
- обновил мой chrome до последней версии - v71 и chromerdriver 2.44
- откатил Chrome до предыдущих версий (v62, v68, v69, v70)
- откатил версию Chromedriver до 2.42 и 2.43
- очистил мои файлы% TEMP% -
- перезагрузил компьютер (несколько раз)
Программа получает значения только в таблицах, но я подозреваю, что где-то на заднем плане, как скриптработает, ненужные данные накапливаются, что заставляет процессор ударять потолок.
Надеясь, что кто-нибудь может помочь мне выяснить, что вызывает эту проблему в процессоре, и решить проблему.