Ruby: Как отсканировать результат запроса Ajax - PullRequest
1 голос
/ 05 июня 2011

Я написал сценарий ruby ​​для скрининга чего-либо с использованием драгоценных камней 'open-uri' и 'hpricot' - пока все отлично работает.

Но теперь мне нужно скрести что-то, что возвращается послеформа отправляется через функцию javascript (вызывается обработчиком события onchange из раскрывающегося меню):

function submit_form() {
  document.list.action="/some/sort/of/path";
  document.list.submit();
}

AFAIK, open-uri позволяет отправлять только запросы GET.И если я не ошибаюсь, здесь потребуется POST-запрос.

Итак, мой вопрос: что мне нужно установить и «потребовать», и как будет выглядеть код ruby ​​(чтобы сделатьэтот запрос POST) - извините, я все еще в значительной степени n00b ...

Большое спасибо за вашу помощь!

Том

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Я думаю, вам определенно следует использовать Механизировать . Он предоставляет удобный интерфейс для взаимодействия с удаленными страницами, формами на них и т. Д. ( см. Этот пример ).

0 голосов
/ 05 июня 2011

Стандартная библиотека Ruby имеет класс http , который, естественно, поддерживает операцию POST.

Net::HTTP.post_form(URI.parse('http://www.example.com/some/sort/of/path')

Если вы найдете API там менее чем оптимальным, взгляните на httparty gem

Наконец, хотя hpricot - это прекрасная жемчужина, он больше не активно развивается. Вам следует подумать о переходе на nokogiri , который практически заменяет hpricot и улучшает его.

...