Posts Tagged ‘ selectorgadget

Web Scraping in Ruby 直捣黄龙

今天我们来看看怎么获取我们关心的信息,直击要害。

Web给了我们太多不想要的信息,比如说你去新浪看新闻,竟是些不着边际的花边新闻,只不过是些惹眼的词汇罢了,并没有什么真实的内容。我经常有这种感受,为了看网页中的一点点儿东西,要忍受整个网页里面的垃圾信息对我的轰炸,各种广告,弹出对话框,有的还有脚本漏洞真实令人防不胜防,烦不胜烦。

比如我就想知道当下微软的股票价格,我怎么办呢?

http://finance.yahoo.com/q?d=t&s=MSFT

就是一个能提供这种信息的地方,哦那里有股票的价格。

image

我们用一个小工具SelectorGadget,这是个什么东西呢?简单来说,这个工具告诉我们关于某种信息的精确定位坐标。比如说我要找百度大厦,在地图上告诉你“这儿”就是不精确的,但是要是告诉你在“上地九街”就很精确了。这个工具就提供精确制导坐标,你只要点击你想要的区域,它就能自动生成css选择表达式或者xpath表达式,非常高效。有了它,几乎能把90%以上的网页都搞定。

闲言少叙见代码

require 'rubygems'
require 'nokogiri'
require 'open-uri'
 
msft_stock_url = "http://finance.yahoo.com/q?d=t&s=MSFT"
doc = Nokogiri::HTML(open(msft_stock_url))
 
doc.xpath("//*[(@id = \"table1\")]//*[(@id = \"yfs_l10_msft\")]").each do |item|
  puts item.text   
end