Closed fmfnjnf closed 1 year ago
Спасибо ChatGPT за пятикратное объяснение ошибки, но не нужно так делать. Данная ошибка возникла из-за того, что Selenium не нашел описание какого-то объявления. Для выяснения причины нужно больше данных: 1) Настройки, с которыми работал скрипт 2) Сколько времени он отработал 3) Что было написано в консоли помимо это ошибки 4) Воспроизводимость ошибки, т.е. это поведение постоянное или нет
Вышла версия 1.02, улучшена стабильность. Просьба проверить
Добрый день. Я проверил, все хорошо работает, спасибо за помощь в решении проблемы.
Отлично
Сообщение об ошибке указывает на то, что сценарий столкнулся с ошибкой при попытке найти элемент HTML с помощью Selenium, популярной библиотеки веб-скрейпинга. В частности, ошибка произошла в методе под названием "__paginator", который является частью более крупного класса под названием "AvitoParse".
Сообщение об ошибке содержит обратную трассировку, которая показывает последовательность вызовов функций, приведших к ошибке. Отслеживание показывает, что ошибка произошла на строке 74 класса "AvitoParse" в методе "__paginator". Метод пытается разобрать веб-страницу и извлечь из нее данные, но при попытке найти элемент HTML с классом "item-description" он столкнулся с ошибкой.
Сообщение об ошибке указывает, что метод Selenium "find_element" был вызван на объекте WebElement, но метод "find_element" не смог найти нужный элемент. Это вызвало ошибку "нет такого элемента", которая была поймана кодом обработки ошибок скрипта и записана в журнал.
Чтобы исправить ошибку, автору сценария необходимо просмотреть HTML-структуру соскабливаемой веб-страницы и скорректировать код, чтобы правильно находить нужные элементы. Это может потребовать изменения селектора CSS, используемого для поиска элементов, или изменения способа взаимодействия библиотеки Selenium с веб-страницей. Сообщение об ошибке указывает на то, что сценарий столкнулся с ошибкой при попытке найти элемент HTML с помощью Selenium, популярной библиотеки веб-скрейпинга. В частности, ошибка произошла в методе под названием "__paginator", который является частью более крупного класса под названием "AvitoParse".
Сообщение об ошибке содержит обратную трассировку, которая показывает последовательность вызовов функций, приведших к ошибке. Отслеживание показывает, что ошибка произошла на строке 74 класса "AvitoParse" в методе "__paginator". Метод пытается разобрать веб-страницу и извлечь из нее данные, но при попытке найти элемент HTML с классом "item-description" он столкнулся с ошибкой.
Сообщение об ошибке указывает, что метод Selenium "find_element" был вызван на объекте WebElement, но метод "find_element" не смог найти нужный элемент. Это вызвало ошибку "нет такого элемента", которая была поймана кодом обработки ошибок скрипта и записана в журнал.
Чтобы исправить ошибку, автору сценария необходимо просмотреть HTML-структуру соскабливаемой веб-страницы и скорректировать код, чтобы правильно находить нужные элементы. Это может потребовать изменения селектора CSS, используемого для поиска элементов, или изменения способа взаимодействия библиотеки Selenium с веб-страницей.
Более подробная ошибка: self._sink.write(str_record) File "/usr/local/lib/python3.10/dist-packages/loguru/_simple_sinks.py", line 50, in write self._handler.handle(record) File "/usr/lib/python3.10/logging/init.py", line 968, in handle self.emit(record) File "/usr/local/lib/python3.10/dist-packages/notifiers/logging.py", line 52, in emit self.handleError(record) Message: 'An error has been caught in function \'paginator\', process \'MainProcess\' (25303), thread \'MainThread\' (139769717370880):\nTraceback (most recent call last):\n\n File "/root/parser_avito-master/parser_avito-master/parser_cls.py", line 193, in\n ).parse()\n\n File "/root/parser_avito-master/parser_avito-master/parser_cls.py", line 156, in parse\n self. paginator()\n -> <main.AvitoParse object at 0x7f1eabc87a30>\n\n> File "/root/parser_avito-master/parser_avito-master/parser_cls.py", line 74, in paginator\n self.parse_page()\n -> <main.AvitoParse object at 0x7f1eabc87a30>\n\n File "/root/parser_avito-master/parser_avito-master/parser_cls.py", line 96, in __parse_page\n description = title.find_element(LocatorAvito.DESCRIPTIONS).text\n | | | -> (\'css selector\', "[class=\'item-description\']")\n | | -> <class \'locator.LocatorAvito\'>\n | -> <function WebElement.find_element at 0x7f1eab42d240>\n -> <undetected_chromedriver.webelement.WebElement (session="31f83e63e76950e96fd0de1f9ad82d8c", element="087F05A1AE8BAB737E365916...\n\n File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py", line 426, in find_element\n return self._execute(Command.FIND_CHILD_ELEMENT, {"using": by, "value": value})["value"]\n | | | | | -> "[class=\'item-description\']"\n | | | | -> \'css selector\'\n | | | -> \'findChildElement\'\n | | -> <class \'selenium.webdriver.remote.command.Command\'>\n | -> <function WebElement._execute at 0x7f1eab42d1b0>\n -> <undetected_chromedriver.webelement.WebElement (session="31f83e63e76950e96fd0de1f9ad82d8c", element="087F05A1AE8BAB737E365916...\n File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py", line 404, in _execute\n return self._parent.execute(command, params)\n | | | | -> {\'using\': \'css selector\', \'value\': "[class=\'item-description\']", \'id\': \'087F05A1AE8BAB737E365916A8A9BC73_element_57\'}\n | | | -> \'findChildElement\'\n | | -> <function WebDriver.execute at 0x7f1eab4416c0>\n | -> <undetected_chromedriver.Chrome (session="31f83e63e76950e96fd0de1f9ad82d8c")>\n -> <undetected_chromedriver.webelement.WebElement (session="31f83e63e76950e96fd0de1f9ad82d8c", element="087F05A1AE8BAB737E365916...\n File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute\n self.error_handler.check_response(response)\n | | | -> {\'status\': 404, \'value\': \'{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\\"metho...\n | | -> <function ErrorHandler.check_response at 0x7f1eab624a60>\n | -> <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f1eaab7a050>\n -> <undetected_chromedriver.Chrome (session="31f83e63e76950e96fd0de1f9ad82d8c")>\n File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response\n raise exception_class(message, screen, stacktrace)\n | | | -> [\'#0 0x55db32e20133 \', \'#1 0x55db32b54966 \', \'#2 0x55db32b910dc \', \'#3 0x55db32b91211 \', ...\n | | -> None\n | -> \'no such element: Unable to locate element: {"method":"css selector","selector":"[class=\\'item-description\\']"}\n (Session ...\n -> <class \'selenium.common.exceptions.NoSuchElementException\'>\n\nselenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[class=\'item-description\']"}\n (Session info: chrome=113.0.5672.63)\nStacktrace:\n#0 0x55db32e20133 \n#1 0x55db32b54966 \n#2 0x55db32b910dc \n#3 0x55db32b91211 \n#4 0x55db32b86e26 \n#5 0x55db32bb0bfd \n#6 0x55db32b86d13 \n#7 0x55db32bb0d9e \n#8 0x55db32bc91c7 \n#9 0x55db32bb09a3 \n#10 0x55db32b8546a \n#11 0x55db32b8655e \n#12 0x55db32ddfcae \n#13 0x55db32de38fe \n#14 0x55db32decf20 \n#15 0x55db32de4923 \n#16 0x55db32db7c0e \n#17 0x55db32e07b08 \n#18 0x55db32e07c97 \n#19 0x55db32e18113 \n#20 0x7fd57b197b43 \n\n'
Arguments: ()