Posted on 2010-02-20 18:14
leekiang 閱讀(1136)
評論(0) 編輯 收藏 所屬分類:
ruby
open-uri庫是ruby的標準附加庫中所帶的,路徑
C:\Ruby1.8.7\lib\ruby\1.8\open-uri.rb
require?'open-uri'
open('c:/boot.ini'){|file|
??puts?file.class??#File
}
open('http://coderlee.cnblogs.com'){|file|
??puts?file.class??#Tempfile
}
可以看出,打開一個本機文件的塊參數是File類型,而打開一個uri的塊參數是一個Tempfile類型。還有一點要注意,就是open-uri里面的open方法會自動對302 redirection重定向地址進行追蹤訪問,而Net::HTTP#get方法則不會自動追蹤302重定向地址。(摘自
這里)
require?'nokogiri'
require?'open-uri'
doc?=?Nokogiri::HTML(open('http://www.huomo.cn'))
doc.search("//h2/a").each?do?|link|
??puts?link.inner_text
??puts?link[:href]
end
url?=?'http://www.google.cn/search?hl=zh-CN&q=%BC%D6%B1%A6%D3%F1'
doc?=?Nokogiri::HTML.parse(open(url),?nil,?'gb2312')#不這樣寫會有亂碼
doc.css('h3.r?a.l').each?do?|link|
??puts?link.inner_text
end
doc.xpath('//h3/a[@class="l"]').each?do?|link|
??puts?link.content
end
doc.search('h3.r?a.l',?'//h3/a[@class="l"]').each?do?|link|
??puts?link.content
end
參考http://www.javaeye.com/topic/557485