我需要用ruby构建以下步骤:
1.进入网站的主页
2.有一个特定的html表单我需要输入user \ pass并点击输入按钮(即html post)
3.从步骤3获取响应(html +登录cookie)
4.使用登录cookie执行许多html get请求(否则我将无权访问该页面)
BTW我试过
url = URI.parse('http://www.example.com/todo.cgi')
req = Net::HTTP::Post.new(url.path)
req.basic_auth 'jack', 'pass'
req.set_form_data({'from'=>'2005-01-01', 'to'=>'2005-03-31'}, ';')
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
case res
when Net::HTTPSuccess, Net::HTTPRedirection
# OK
else
res.error!
end
它不起作用。
谢谢你们
答案 0 :(得分:4)
有几种优秀的Ruby宝石可用于自动访问网站。
请参阅:
Nokogiri是HTML解析最受欢迎的宝石。瑞恩贝茨有一个很棒的screencast on Mechanize。 Mechanize是一个用于与网站进行自动交互的Ruby库。它扩展了Nokogiri,允许您与网站上的多个页面进行交互:点击链接,提交表单等。
看看Mechanize。您将获得一个记录良好的Ruby库,并自行保存实现它的工作。