【问题标题】:Filling a form using Ruby mechanize使用 Ruby mechanize 填写表单
【发布时间】:2018-09-24 19:35:36
【问题描述】:

我正在尝试了解如何使用 Ruby mechanize gem 从https://www.otodom.pl/ 填写表格,但它不起作用。我尝试了一些变体和推荐的解决方案,但仍然没有。问题是,当我提交表单时(我需要通过 value = "Wrocław" 填写第一个字段),它会进入下一页,但下一页是提交空表单的结果。为什么?如何正确设置该字段,提交后进入正确页面?

问候!

require 'mechanize'

agent = Mechanize.new
main_page = agent.get 'https://www.otodom.pl/'

form = main_page.form(:class => "form form-search")

form.field_with(:name=>"search[LOCATION]").value = "Wrocław"
form.fields.each{|f|
  puts f.name
  puts f.value
}

sec_page = form.submit

puts sec_page.uri.to_s

rows = sec_page.root.css(".col-md-content article")

rows.take(10).each do |row|
  title = row.at_css(".text-nowrap span").text.strip
  puts "#{title}"
end

【问题讨论】:

    标签: ruby forms mechanize


    【解决方案1】:

    我查看了页面,据我所知,没有名为search[LOCATION]input。此外,表单值似乎是数字标识符,例如 search[city_id]=39 当字段显示 Wrocław, dolnośląskie 时,您可以在以下屏幕截图中看到:

    【讨论】:

    • 我尝试了很多方法。我明白了,没有'search[LOCATION]',但是当我打印出属于此表单的字段名称时,它给了我:search[LOCATION]、search[dist]、search[category_id] 我试图填写诸如搜索之类的字段[city_id],但它只返回一个错误(没有这样的字段)。也许有比 Mechanize 更好的库,或者我在它的文档中没有找到合适的方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2012-11-26
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多