Il giorno 03/nov/06, alle ore 15:20, z ha scritto: > I'm trying to write a script to read a list of URLS, get the HTTP > response > headers and <title> (if there is a page there) from each URL, and > output to > a CSV file in this format: > URL, header, <title> > > I've started with something like this, using Lynx to get the > headers. The > part that doesn't seem to work is this: > `lynx -dump -head "#{line}"` -- it doesn't want to put the url > into the > #{line} within the backticks. > > How do you insert a variable from Ruby into the shell command? I'm > ordering > 4 Ruby books by mail today... I haven't seen anything like this in > the ones > that I've browsed though. > > > Here is a larger section of the script: > > print "Enter the location of the input file: " > infile = gets.chomp > > # open file > File.open(infile, "r") do |f| > # get HTTP headers with Lynx > output = f.each_line { |line| `lynx -dump -head "#{line}" | > grep "HTTP"` } > # puts output to CVS file > # TODO If you really want to use an external program, you could use something like open("|program") in order to get an IO object connected to its output. Anyway I think the best way to do that is by using Net::HTTP ( http:// phrogz.net/ProgrammingRuby/lib_network.html#NetHTTP ), give it a look, you could find it useful :)