所以这就是:
我使用ruby来获取用户输入,简单方法..我要求2个输入:
input1 = gets.chomp
input2 = gets.chomp
现在我想发送这些信息说,一个搜索引擎分别采用这两个选项并进行搜索。我怎样才能做到这一点?在这种情况下,什么API / Gems对我有帮助?
我知道我可以接受这两个输入并将它们插入到url中但不是那么简单,因为根据输入,url结构不是常数..(我不想这样使用这种方式。 。)
自从我在ruby编程以来已经很长时间了,我知道如何访问网页和类似的东西,但我想操纵和接收。任何想法?
答案 0 :(得分:2)
如果您在谈论没有任何API访问或复杂的JS逻辑的网站的某些前端,您可以简单地使用mechanize gem,它允许您执行以下操作:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get('http://google.com/')
form = page.forms.first
form['field_name_1'] = input1
form['field_name_2'] = input2
page = agent.submit(form, form.buttons.first)
puts page
→查看official documentation more
的examples如果您打算使用第三方REST API,最好尝试使用faraday或其他popular gems(具体取决于您的品味和特定任务)。
答案 1 :(得分:1)
如果我误解你,请纠正我。
根据我的理解,您希望在URL中对两个输入进行编码,将它们发送到API并接收结果。
您可以使用Ruby stdlib中的Net::HTTP库。以下是文档中动态参数的示例:
uri = URI('http://example.com/index.html')
params = { :limit => 10, :page => 3 }
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
puts res.body if res.is_a?(Net::HTTPSuccess)
或者您可以使用一些宝石来为您包装。 HTTParty似乎很受欢迎。您可以像
一样简单HTTParty.get('http://foo.com/resource.json', query: {limit: 10})