【问题标题】:Parse form using Nokogiri and pass it to URI.encode_www_form? [closed]使用 Nokogiri 解析表单并将其传递给 URI.encode_www_form? [关闭]
【发布时间】:2013-12-08 19:29:24
【问题描述】:

我有一个简单的 HTML 表单,它是从网页获得的:

<form id="my">
  inputs....
</form>

我需要通过它的 ID 获取此表单,我知道该怎么做:

@get_doc = Nokogiri::HTML(page)
nb = @get_doc.at_css('#my')

也许我可以通过对象进行迭代? 我需要将所有输入值和输入名称放入某个变量中,然后将其传递给URI.encode_www_form

我该怎么做?如何获取表单中的所有输入以及名称和值,并将它们传递给encode_www_form

【问题讨论】:

  • “要求代码的问题必须证明对正在解决的问题有最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另请参阅:堆栈溢出问题清单”跨度>
  • 几乎可以肯定,你应该使用机械化来做你正在做的任何事情。
  • @theTinMan 你了解这个世界上的一切吗?为什么有些人这么紧张?
  • 我不明白你在说什么。
  • 为什么你想从你从页面得到的表单中获取值?该表单中的值将是默认值。如果您有默认值,为什么要对它们进行编码?这是没有意义的。如果您尝试填写表格并发送,那么您应该遵循@pguardiario 的建议。

标签: ruby parsing uri nokogiri


【解决方案1】:
arr = []

# form = doc.at_css '#form'
form.css('input').each do |i|
  arr << [i['name'], i['value']]
end

URI.encode_www_form arr

【讨论】:

  • 我倾向于使用arr = form.css('input').map { |node| [node['name'], node['value']] },而不是将arr初始化为一个空数组,然后使用each。它更短更直接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多