Rails 机械化 gem - 抓取

Rails mechanize gem - scraping

我想使用 Mechanize gem 填写一些触发文件下载的选项。 HTML 如下。

<div>
   <form action="" id="label_selectors" method="post">
     ...
     ...
       <div class="source form_options">                                    
              <select name="source" id="source">                                    
                <option value="btce" selected="selected">Btc-e</option>                                 
                <option value="cryptsy">Cryptsy</option>                                    
             <option value="796">796</option>                                   
                <option value="bitstamp">Bitstamp</option>                                  
                <option value="formulas">Altcoin Indexes</option>                                   
              </select>                                 
            </div>                                  
            <div class="label form_options">                                    
              <select name="label" id="label">                                  
              </select>                                 
            </div>                                  
            <div class="period form_options">                                   
          <select name="period" id="period">                                    
          <option value="15m">15 minute</option>                                    
          <option value="1h" selected="selected">1 hour</option>                                    
          <option value="1d">1 day</option>                                 
          </select>                                 
        </div>                                  
        <div class="presense form_options">                                 
          CSV: <input type="radio" name="presence" value="csv"> Chart: <input type="radio" name="presence" value="chart" checked="checked">                                 
        </div>                                  
        <div class="submit form_options">                                   
          <input type="submit" name="submit" value="OK">                                    
        </div>                                  
      </form>                                   
    </div>

我试过这样做:

form = page.forms.first  
form.source = "btce"   
form.label = "BTC/USD"
form.period = "1d"
form.presense = "csv"
form.submit

然而,它不起作用:

NoMethodError: undefined method `presense=' for #<Mechanize::Form:0x007fb878dc7f98

(页面中出现的是拼写错误而不是存在)

如何正确填写此表格?

看起来 presence 输入是一个单选按钮。

要 select 带有机械化功能的单选按钮,您需要如下内容:

form.radiobuttons_with(name: 'presence')[0].check

还有其他方法 select 机械化单选按钮 - 您可以在这里看到它们:http://docs.seattlerb.org/mechanize/GUIDE_rdoc.html