我想创建一个简单的Ruby程序,它可以读取单个html页面的内容并将两个信息输出到数组中。
例如,这是网页:http://www.trulia.com/real_estate/Cambridge-Massachusetts/
我希望我的输出为:
output = [ [Mid-Cambridge, $642,126],
[North Cambridge, $602,100,]
[East Cambridge, $611,436]
[Neighborhood Nine, $1,068,284]
[West Cambridge, $1,577,444] ]
我在想做类似的事情:
File.read(文件名).INCLUDE?(each_neighborhood)
从那里,将每个邻居和html文件中离它最近的价格一起推入一个阵列,冲洗并重复。但我觉得这可能不是最有效的方法,我也不确定如何实现它。
我也听说过'search_in_file'可能很有用。但它可能没有必要。
答案 0 :(得分:0)
您可能需要查看Nokogiri,当您需要使用网页并希望从中提取信息时,这是一个很棒的宝石。
答案 1 :(得分:0)
这是一个小脚本:
#!/usr/bin/env ruby
require 'nokogiri'
require 'open-uri'
url = "http://www.trulia.com/real_estate/Cambridge-Massachusetts/"
web_page = open(url).read
doc = Nokogiri::HTML.parse( web_page )
neighborhoods = doc.css('#most_popular td.txtL').map(&:text)
listing_prices = doc.css('#most_popular td.txtC').map(&:text)
output = neighborhoods.zip(listing_prices)
puts output.inspect
输出看起来像这样
[["Mid-Cambridge", "$642,126"],
["North Cambridge", "$602,100"],
["East Cambridge", "$611,436"],
["Neighborhood Nine", "$1,068,284"],
["West Cambridge", "$1,577,444"]]
你正在寻找什么,对吧?