|
2 / 2 / 2
Регистрация: 09.12.2012
Сообщений: 24
|
||||||
Самопроизвольное закрытие скрипта03.11.2016, 10:40. Показов 2897. Ответов 12
Метки нет (Все метки)
Есть скрипт. Шерстит заголовки групп вконтактика и нужные группы сбрасывает в отдельный файлик.
Выглядит примерно так(см миниатюры). Суть в том, что периодически скрипт завершается(причем на случайной итерации), пришлось создать логирование, чтобы следующий запуск начинался с последней группы. Собственно вопрос, почему может завершаться работа скрипта?
0
|
||||||
| 03.11.2016, 10:40 | |
|
Ответы с готовыми решениями:
12
Самопроизвольное закрытие RemoteApp Самопроизвольное закрытие программ Самопроизвольное закрытие папок |
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 03.11.2016, 11:04 | |
|
И что же он, просто молча завершается? Или всё же что-то в консоль напоследок пишет?
0
|
|
|
2 / 2 / 2
Регистрация: 09.12.2012
Сообщений: 24
|
|
| 03.11.2016, 11:19 [ТС] | |
|
Black Fregat,
В том то и дело, молча закрывается. Есть предположение, что на стороне ВК, блокируют например.
0
|
|
|
Заблокирован
|
|||||||||||
| 03.11.2016, 16:12 | |||||||||||
|
Скрипт может завершиться без исключения только в случае креша интерпирататора. Поэтому вы можете словить SystemExit.
Пример:
0
|
|||||||||||
|
|
|
| 03.11.2016, 17:08 | |
|
4g63user,
У вас скрипт написан, как будто он запускается в идеальном мире с идеальными (и притом настроенными для максимального удобства ботов) серверами. Никто так не делает для реальных программ - requests.get всегда оборачивается в try .. except .. else. 1) В try .. except ловим исключения - если обобщенно, то requests.exceptions.RequestException. Если детализировано, то можно отдельно requests.exceptions.ReadTimeout и requests.exceptions.ConnectTimeout и что-нибудь еще. 2) В else проверяем код ответа сервера: если не 200 - думаем, что делать. Если 200 - проверяем длину ответа. Если 0 (сервера могут и так отвечать:"все в порядке, вот тебе 0 байт") - думаем, что делать. 3) Между запросами (особенно, если их очень много), чтобы сервер как можно позже понял, что работает бот, а не человек - желательно выставлять рандомные паузы. 4) В логике скрипта также стоит предусмотреть перезапуск запроса с теми же данными, если сервер не дал ответа или был exception по таймауту. В итоге при грамотном логировании работы скрипта - вы получите все ответы на свои вопросы: что, где и почему не работает. Если вам сервер присылает json - зачем его превращать в текст и парсить регулярками? В resp.json() будет словарь, забирайте оттуда по ключу все, что вам надо.
0
|
|
|
|
|||||||||||||
| 03.11.2016, 17:38 | |||||||||||||
|
Хотя согласен с тем что у ТС отсутствуют проверки кода ответа сервера.
Вероятно универсальным ответом будет - кривые руки разработчика? Такой ответ устроит? Лично я предположу что вы не умеете работать с консолью, например что мешает запустить скрипт с перенаправлением вывода в файл? Может вы просто не успеваете зрением заметить выброшенное исключение?
0
|
|||||||||||||
|
2 / 2 / 2
Регистрация: 09.12.2012
Сообщений: 24
|
|
| 03.11.2016, 17:52 [ТС] | |
|
Я новичок в Python, поэтому вы все правы. Буду разбираться на основе ваших ответов.
Всем спасибо.
0
|
|
| 03.11.2016, 20:12 | |
|
0
|
|
|
|
||
| 03.11.2016, 22:31 | ||
|
Завидую. Увы, в моей реальности это не так. И приходится заниматься "бессмысленным" оборачиванием запросов в try..except. И вы недостаточно внимательно прочитали мой пост адресованный ТС - ему предлагалась конкретная обработка исключений на его выбор. Каких конкретно - зависит уже от задач скрипта в целом и частностей реализации.
0
|
||
|
|
||
| 03.11.2016, 22:40 | ||
|
Кроме того я писал выше requests не всегда кидает исключения - необходимо проверять код ответа сервера. В любом случае это не касается вопроса, ибо у ТС затык с определением проблемы, а не с обработкой разных ситуаций. Используя правильно консоль или запуская к примеру из IDE Pycharm можно было бы легко определить в чем проблема, а не гадать.
0
|
||
|
|
|||||||||
| 04.11.2016, 01:58 | |||||||||
Какой толк от ответа 200 ОК, если сервер прислал не то, что мы ожидали (0 байт, проверочную страницу для защиты от ботов и т.д.)? И это тоже нужно проверять. 1) ждать (бесконечно или по счетчику с лимитом повторов на запросы) 2) залогировать причину и выйти 3) заняться чем-то другим (книгу почитать :-)) а не тупо вылетим в unhandled exception и напугаем пользователя непонятным traceback-ом. По моему, это азы web-кодинга - и непонятно с чем тут можно спорить.
0
|
|||||||||
|
2 / 2 / 2
Регистрация: 09.12.2012
Сообщений: 24
|
||
| 08.11.2016, 08:03 [ТС] | ||
|
Кто бы мог подумать. Ошибка такая:
0
|
||
| 08.11.2016, 08:03 | |
|
Помогаю со студенческими работами здесь
13
Самопроизвольное закрытие окон на компьютере Самопроизвольное закрытие файлов в Brackets: OLDI conflicted copy Самопроизвольное закрытие программ, штук 40 процессов калькулятора и прочие приколы Самопроизвольное закрытие окон на ноутбуке + при нажатии определённых клавиш на клавиатуре Тихая установка программ, открывающиеся вкладки в хром и его самопроизвольное закрытие, mystartsearch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|