Будет работать что-то вроде механизации, но взаимодействие с кодом пользовательского интерфейса всегда будет медленнее и более проблематичным, чем выполнение запросов непосредственно к серверной части.
Лучше всего было бы взглянуть назапрос, который делается на сервер (вероятно, запрос HTTP GET или POST с некоторыми связанными параметрами).Вы можете сделать это с Firebug или Fiddler 2 для Windows.Затем, как только вы узнаете параметры, которые будет принимать сервер, просто сделайте запрос самостоятельно.
Например, если вы делали это с помощью поисковой системы duckduckgo.com, вы можете либо получить механизм, чтобы перейти на duckduckgo..com, введите текст в поле поиска и нажмите кнопку Отправить, или вы можете просто создать запрос GET для http://www.duckduckgo.com? q = search_term_here .
Вы можете использовать Mechanize для чего-то вродеэто, но это может быть излишним.Я хотел бы взглянуть на RestClient, особенно если вам не нужно управлять файлами cookie.
Редактировать:
Если вы можете определить конкретный URL-адрес, на который отправляется форма, например, 'example.com/search ';и вы знали, что запрос был POST (что обычно происходит, если вы отправляете форму), вы можете сконструировать что-то вроде этого с помощью mechanize:
agent = Mechanize.new
agent.post 'http://example.com/search', {
"_id0:Number" => string_to_search_for,
"_id0:submitButton" => "Enter"
}
Обратите внимание, как атрибут 'name' элемента формы становитсяключ для сообщения, и элемент 'value' становится значением.Элемент 'input' получает значение непосредственно из текста, который вы бы ввели.Это преобразуется в запрос и отправляется на сервер, когда вы нажимаете кнопку отправки (конечно, в этом случае вы делаете запрос напрямую).Результатом поста должен быть некоторый HTML-код, который вы можете анализировать для получения необходимой информации.