У меня есть скрипт, который отлично работает ... Что он делает, так это.
Каждые 5 минут ... через запланированные задачи Windows .. программа scrape.py запускается
И, в сценарии ... код в двух словах, как это .. и он работает отлично .. Я использую Mechanize, BeautifulSoup
1) Вход на сайт (интранет в сети компании) .. с именем пользователя /пароль
1.1) если на странице написано «пользователь уже вошел в систему» .. я принудительно выйду из системы ... затем снова войдите на страницу ... затем перейдите к шагу 2.
2)пробегает 20 страниц, очищает и помещает в базу данных
3) Выход из системы
Что я хочу?
Я хочу сохранить один и тот же сеанс просмотра без выхода из системы каждые 5 минут... Если бы я держал скрипт, скажем, в режиме сна (5 минут) ... он работает хорошо ... Но я не хочу, чтобы скрипт работал постоянно ... во избежание утечек памяти ... так как скрипт выполняется 24/7в течение 365 дней.
Только при возникновении проблемы. Я буду знать это, если не смогу успешно войти в систему повторнодобавление некоторого текста со страницы, такого как заголовок ... Я хочу выйти из системы только тогда, когда это произойдет ... и войти снова.
Другая причина .. Я хочу, чтобы логин был минимальным, потому что ...Я не хочу, чтобы веб-сервер знал ... Я вхожу и выхожу из системы несколько раз в день .. (в настоящее время .. 288 в день при использовании 5 минут) .. Я хочу, чтобы это было в идеале 1в день .. или <= 12, если ничего не поделаешь .. </p>
Я также подумывал ... сохранить сценарий продолжающим работать в течение 2 часов ... но каждые 5 минут в течение 2 часов.очистить страницу ... в конце 2 часов ... выйти из системы и войти снова ... сделать 2 часа снова ... Таким образом ... Я буду входить в систему, скажем, 12 раз в день ...Но что, если сценарий прервался из-за какой-то ошибки ... и как я могу перезапустить его автоматически ... потому что запланированное задание теперь не является частью изображения, чтобы отслеживать его каждые 5 минут ... (или может?) ... Я нея хочу разрешить запуск нескольких процессов одного и того же скрипта ..
Когда скрипт запущен, все, что я вижу вДиспетчер задач "pythonw.exe"
Любые предложения .. учитывая мои требования .. Какой лучший подход?
- не хотите утечки памяти
- поддерживать минимальное количество входов в систему (в настоящее время 288 / день)
- сценарии запускаются 24/7 каждые 5 минут
- запланированная задача .. как избежать запуска нескольких процессов.
Кстати ... я читал это: http://www.perlmonks.org/?node_id=723534 и несколько других ... но ни один не помогает.
Дополнительные примечания: 07Jan
Я попробовал документацию по механизации ... и попробовал различные примеры со страницы ... независимо от того, что я делаю ... во второй раз во время прогона ... Мне все еще нужно войти на страницу (не может сохранить сеанс).по одной причине ... может быть, я делаю это неправильно, например, неправильно передаю или сохраняю файл cookie ... ИЛИ сайт вообще не допускает этого (разве мы не можем обмануть сайт ??!) ..
Во всяком случае ... при условии, что между новыми запусками говорят, что я не могу сохранить сеанс ... тогда каков наилучший способ сохранить минимальное количество входов в систему ... (например, 2 часа в режиме true loop ... со сном (5 минут) послекаждый запуск) .. учитывая, что скрипт может в любой момент прерваться из-за какой-то ошибки ... и ждать, пока кто-нибудь (назначит задачи) запускает его.