我已经写了一个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 ...
非常感谢你的帮助!
汤姆
答案 0 :(得分:2)
我认为你绝对应该使用Mechanize。它提供了一个漂亮的界面来与远程页面,表单上的表单等进行交互(see this example)。
答案 1 :(得分:0)
Ruby标准库具有http class,它自然支持POST操作。
Net::HTTP.post_form(URI.parse('http://www.example.com/some/sort/of/path')
如果您发现API不是最佳,请查看httparty gem
最后,虽然hpricot是一个伟大的宝石,但它不再是积极开发的。您应该考虑转移到nokogiri,它实际上取代了hpricot并对其进行了改进。