2008年6月23日 星期一

RubyfulSoup

HTML/XML Parser
Beautiful Soup(@Python)的Ruby binding

document
http://www.crummy.com/software/RubyfulSoup/documentation.html
http://www.crummy.com/software/BeautifulSoup/documentation.html
gem上面有,叫rubyful_soup(gem 1.2的速度是1.1的N倍,記得更新)
require 'Rubyful_Soup'

把HTML裝到一個string變數裡面(這裡用text)
soup = BeautifulSoup.new(text)

用find_all方法可以找出所有標籤和他的內容
soup.find_all('a') 或是 soup.find_all('input') 之類,他會回給你Tag物件的陣列

Tag物件可以直接用Hash的形式取得屬性,並用contents方法取得被tag包住的內容。如果內容只是一個字串,也可以用string方法取得。

比如說:
<a href="link.html">Content</a>

tag = find_all('a')[0]

tag['href'] = "link.html"
tag.string = "Content"

沒有留言:

CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; } #quote { display: block; /* fixes a strange ie margin bug */ font-family: Verdana; font-size: 10pt; overflow:auto; background: #f7f7f7 url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKN19b4aT1DHj8GUNi63hQtkKMMZBz85Is4BxJdhPcfrcbaDczl_1lhtztSIirdEAoNLN5F-aDcr7pBSdyFbupvipv2q7vmWWhcqhgsf8nr_nH0jBKyn4YGlBfuiV-BOWA56z7mdE4XXo/s288/quote-l.gif) left top no-repeat; border: 4px dotted #ccc; padding: 15px 15px 15px 31px; /*up right bottom left*/ max-height:300px; line-height: 1.2em; }