2011-12-18 57 views
0

我有了这个Ruby脚本:的Ruby脚本机械化在Python

require 'mechanize' 
agent = Mechanize.new 
page = agent.get "http://www.speech.sri.com/projects/srilm/download.html" 
form = page.forms.last 
form.field_with(name: "name").value = "Hans Meier" 
form.field_with(name: "org").value = "Meier AG" 
form.field_with(name: "email").value = "hans.meier.org" 
form.field_with(name: "address").value = "Baslerstrasse 32" 
form.field_with(name: "file").value = "/project/srilm/srilm-1.6.0.tar.gz" 
File.open('srilm.tgz') {|f| f.write agent.submit(form).body } 

按照intro page,第一部分是容易的,但我不知道如何处理form.field_with东西。

回答

1
import mechanize 
br = mechanize.Browser() 
br.open("http://www.speech.sri.com/projects/srilm/download.html") 
br.select_form(nr = True) 
br['name'] = 'Hans Meier' 
br['org'] = 'Meier AG' 
br['email'] = 'hans.meier.org' 
br['address'] = 'Baslerstrasse 32' 
br['file'] = ['/project/srilm/srilm-1.6.0.tar.gz'] 
form_submission = br.submit() 
with open('srilm.tgz', 'w') as f: 
    f.write(form_submission.read()) 
+0

从技术上讲,这不等同于'field_with'(它允许多条件或正则表达式匹配),但是OP并没有真正需要在Ruby脚本中使用它。 – 2011-12-18 21:04:32