отправка запроса на страницу - PullRequest
0 голосов
/ 16 марта 2010

Я пытаюсь заполнить форму автоматически, нажимаю кнопку в этой форме и жду ответа. Как мне это сделать? Если быть более точным, у меня есть - ОГРОМНАЯ - коллекция ДНК-штаммов, которые мне нужно сравнить друг с другом. К счастью, есть веб-сайт , который делает именно то, что мне нужно. По сути, я набираю 2 разные последовательности ДНК, нажимаю кнопку «Выровнять последовательности» и получаю результат (расчет оценки не имеет значения) Есть ли способ сделать программу на Java, которая будет автоматически вставлять ввод, «нажимать» кнопку и читать ответ с этого сайта?

Спасибо!

Ответы [ 3 ]

1 голос
/ 16 марта 2010

Вы можете использовать Apache http клиент для отправки запроса на веб-сайт.

Посмотрите на источник на рассматриваемой странице, и вы найдете часть. Он содержит все поля, которые необходимо отправить на сервер. В частности, вы увидите, что его нужно отправлять как сообщение, а не как обычное получение. Ссылка выше показывает, как сделать сообщение с кодом клиента http.

Вам нужно будет указать nameValuePair для каждого поля в форме, например:

<input type="hidden" name="rm" value="lalign_x"/>
<input type="checkbox" name="show_ident" value="1" />
<textarea name="query" rows="6" cols="60">

Вероятно, потребуется несколько проб и ошибок, чтобы правильно настроить все поля. Я бы рекомендовал делать это с небольшими наборами данных. Как только все это заработает, попробуйте это с вашими большими данными.

0 голосов
/ 16 марта 2010

В Python вы можете использовать библиотеку mechanize (http://wwwsearch.sourceforge.net/mechanize/).) Это довольно просто, и вам не нужно знать Python очень хорошо, чтобы использовать его.

Простой пример (заполнение формы логина):

br = Browser()
br.open(login_link)
br.select_form(name="login")
br["email"] = "email@server.com"
br["pass"] = "password"
br.submit()
0 голосов
/ 16 марта 2010

Вы, вероятно, могли бы сделать это, используя Селен .

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