我想知道是否有一种方法或库可以填写Ruby连接到的网站上的文本框。我正在开发一个网络抓取应用程序,它从网站上提取一个表格...这是我所指的文本框:
有没有一种简单的方法可以使用这个或我可以使用的库?
(所有不同的数据页都在一个网址中,因此我无法使用不同的网址来执行此操作。)
提前致谢!
答案 0 :(得分:2)
您应该尝试使用mechanize gem来执行此操作:
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
它非常易于使用且非常直观。以下是documentation more examples。
或者您可以在您喜欢的浏览器中使用您选择的开发人员工具,在表单提交后记录并检查HTTP请求,然后使用标准HTTP Client向所有站点发送直接请求(表单操作)准备好POST请求数据(而不是感觉形式)。
如果您要废弃大量数据,我建议您使用类似em-http-request的内容来异步执行此操作。
答案 1 :(得分:-1)
您必须使用测试宝石,其中一些填写表格输入。 像"capybara"
一样文档有点详尽,但它是一个强大的工具