Я разработчик Java, и у меня есть вопрос об автоматизации поставленной мне задачи.
Мне нужно 3 раза в день войти на этот веб-сайт, который у нас есть на работе, выбрать несколько элементов формы и затем нажать «Отправить», чтобы распечатать отчет.
Мне интересно, как я могу написать какой-нибудь скрипт, который автоматизирует эту задачу? С чего мне начать? На каком языке мне это делать? Я думал, что PHP может сделать это или даже сценарий greasemonkey?
Большое спасибо.






Это называется «очистка веб-страниц» или «очистка экрана», и для этого существует множество библиотек. Однако я не мог говорить с инструментом, специфичным для Java: я парень .Net (путь .Net был бы System.Net.WebClient или System.Net.HttpWebRequest / System.Net.HttpWebResponse). Но я уверен, что в этом что-то есть.
А пока первый шаг - перейти на страницу, где вы вводите значения формы, и просмотреть исходный код страницы. Найдите конкретный элемент <form>, который вы заполняете, и посмотрите, куда он отправляется (это действие). Затем найдите любые элементы <input> <select>, <textarea>, которые вы используете, включая любые скрытые входы для формы, и выясните, какие значения вам нужно получить. Это расскажет вам, как создать свой запрос, как только вы найдете библиотеку, которая позволит вам его отправить.
Если вам нужно сначала войти на сайт, чтобы перейти на страницу, все может быть сложнее. Возможно, вам потребуется получить и проанализировать значение сеанса или иметь возможность отправлять определенные файлы cookie на сервер.
Я не знаю, на каком языке написана ваша форма, но вы можете сделать следующее:
Cron - это в основном запланированная задача в системах Unix. Серверы на базе Windows могут использовать планировщик задач с той же целью.
Вышеупомянутое предполагает, что у вас есть доступ к сценарию, который генерирует отчет в данный момент, и вы можете изменить его / скопировать в новый файл, который отправит вам результат по электронной почте. Если нет, то вам может потребоваться очистка экрана. Поскольку вы разработчик Java, вам может пригодиться этот список утилит для очистки экрана Java, чтобы начать работу.
Я думаю, что потенциальным камнем преткновения, который еще не был затронут, является ваша фраза «войдите на этот веб-сайт» ... В зависимости от того, как вам нужно войти в систему, вам может потребоваться пройти через черный ход, чтобы получить доступ к отчету.
У меня были проблемы с подобными вещами в прошлом, когда мне приходилось загружать отчет со стороннего сайта. Проблема заключалась в том, что я не мог пройти аутентификацию для доступа к параметрам отчета из-за жестко запрограммированного и менее дружественного к сценариям способа, которым мне требовалось войти на сайт. Однако я предполагаю, что ваш сайт является внутренним для вашей организации, поэтому можно обойти / переработать требования безопасности для доступа к данным. В этом случае вы сможете использовать один из методов очистки экрана, описанных выше.
В противном случае вам может потребоваться включить фактическую процедуру входа в свой сценарий или приложение, загрузить и зафиксировать любые файлы cookie, которые могут быть установлены, и включить их в свой запрос данных.
Проверьте cURL в PHP. Он позволяет выполнять все обычные функции веб-браузера с помощью кода (кроме перемещения мыши). И да, вам нужно будет очистить экран.
Привет, у меня была такая же проблема, и я попробовал cURL, но не смог обработать файлы cookie. Не могли бы вы опубликовать фрагмент кода о том, как с ними бороться? (Я плохо разбираюсь в файлах cookie).