1

我已经编写了一个 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 ......

非常感谢您的帮助!

汤姆

4

2 回答 2

2

我认为您绝对应该使用Mechanize。它提供了一个漂亮的界面来与远程页面、它们上的表单等进行交互(参见这个例子)。

于 2011-06-05T08:25:09.513 回答
0

Ruby 标准库有http 类,自然支持 POST 操作。

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

如果你发现那里的 API 不是最优的,那么看看httparty gem

最后,虽然 hpricot 是一个伟大的宝石,但它不再被积极开发。您应该考虑迁移到nokogiri,它实际上取代了 hpricot 并对其进行了改进。

于 2011-06-05T08:52:24.347 回答