Автоматизировать получение отчета с веб-страницы - PullRequest
0 голосов
/ 10 октября 2008

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

Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 10 октября 2008

Проверьте cURL в PHP. Он позволяет выполнять все обычные функции веб-браузера с помощью кода (кроме перемещения мыши). И да, вам нужно будет очистить экран.

1 голос
/ 10 октября 2008

Я думаю, что потенциальным камнем преткновения, который еще не был затронут, является ваша фраза "войти на этот сайт" ... В зависимости от того, как вам нужно войти, вам может потребоваться войти через черный ход, чтобы получить доступ отчет.

В прошлом у меня были проблемы с такого рода вещами, когда мне приходилось загружать отчет со стороннего сайта. Проблема заключалась в том, что я не мог пройти проверку подлинности для доступа к параметрам отчета из-за жестко запрограммированного и менее удобного для сценариев способа, который мне требовался для входа на сайт. Тем не менее, я предполагаю, что ваш сайт является внутренним для вашей организации, поэтому может быть возможно обойти / переработать требования безопасности для доступа к данным. Если это так, тогда вы сможете использовать один из методов очистки экрана, описанных выше.

В противном случае вам может понадобиться включить фактическую процедуру входа в систему в ваш скрипт или приложение, загрузить и перехватить любые файлы cookie, которые могут быть установлены, и включить их в ваш запрос данных.

0 голосов
/ 10 октября 2008

Я не знаю, на каком языке написана ваша форма, но вы могли бы сделать следующее:

  • переписать форму в скрипт, который генерирует отчет при вызове
  • используйте запись cron , чтобы запланировать ежедневное выполнение этой задачи и отправить по почте результат

Cron - это, по сути, запланированная задача в системах Unix. Серверы под управлением Windows могут использовать планировщик заданий практически с той же целью.

Вышеприведенное предполагает, что у вас есть доступ к сценарию, который генерирует отчет в данный момент и может изменить его / скопировать в новый файл, который отправит вам выходные данные по электронной почте. Если нет, то вам, возможно, придется посмотреть на очистку экрана. Как разработчик Java, вы можете найти этот список утилит для очистки экрана Java удобным для начала работы.

0 голосов
/ 10 октября 2008

Это называется «очистка веб-страниц» или «очистка экрана», и для этого существует множество библиотек. Я не мог говорить с конкретным Java-инструментом, хотя: я парень. Но я уверен, что что-то есть.

Тем временем, первый шаг - перейти на страницу, где вы вводите значения формы, и просмотреть источник страницы. Найдите конкретный элемент , который вы заполняете, и посмотрите, куда он отправляет сообщения (это action ). Затем найдите любые элементы

Если вам нужно сначала войти на сайт, чтобы попасть на страницу, все может быть сложнее. Вам может потребоваться получить и проанализировать значение сеанса или иметь возможность отправить определенные файлы cookie на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...