以下代码实现使用ruby脚本获取项目组定餐网页的功能. 最终将网页内容写入各个文件. 初次使用ruby, 确实很爽,尽管写出来的代码带有浓烈的JAVA风味. require 'net/http' require 'uri' def get_web_document(response) case response when Net::HTTPSuccess return response when Net::HTTPRedirection uri = URI.parse(response['location']) response = Net::HTTP.get_response(uri) return get_web_document(response) else return nil end end def store(file_name, resp) f = File.new(file_name, 'w') f.puts resp f.close end def get_headers(resp) {'Cookie' => resp['set-cookie'] } end url = URI.parse('http://portal.spif.fnst.cn.fujitsu.com:8080/olfood2/login_loginUser.action') req = Net::HTTP::Post.new(url.path) req.set_form_data({'user.userId' => 'qiuyuzhou', 'user.password' => 'user'}) Net::HTTP.new(url.host, url.port).start {|http| res = http.request(req) headers = get_headers(res) body = get_web_document(res) store('login.txt', body) url.path = '/olfood2/bill_view.action' resp = http.post(url.path,"",headers) body = get_web_document(resp) store('zhangdan.txt',body) url.path = '/olfood2/editInfo_enter.action' resp = http.post(url.path,"", headers) body = get_web_document(resp) store('editinfo.txt',body) url.path = '/olfood2/welcome_userReserve.action' resp = http.post(url.path, "", headers) body = get_web_document(resp) store('orders.txt',body) }