2010-03-15 2 views
0

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

Спасибо!

+0

Я думаю, что тег «web-development» не имеет отношения. – Dmitry

+1

На веб-сайте есть ссылка для загрузки, чтобы вы могли запускать ее локально. вы проверили? http://fasta.bioch.virginia.edu/fasta_www2/fasta_down.shtml Я (и, вероятно, сопровождающий веб-сайт) предпочел бы его выше webrobot. – BalusC

ответ

0

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

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

br = Browser() 
br.open(login_link) 
br.select_form(name="login") 
br["email"] = "[email protected]" 
br["pass"] = "password" 
br.submit() 
0

Возможно, вы можете сделать это, используя Selenium.

1

Вы можете использовать апача http client, чтобы отправить запрос на веб-сайте.

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

Вам необходимо предоставить для каждой пар имя поля в форме, например, такие:

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

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