scrapiでクラス名が2種類ある時の取り方
scrapiでtwitterのhtmlを解析していますが、
最近entry-content、entry_contentで
頻繁に発言タグの構成が変わります。。。毎回対応していては、
めんどくさいので、一気に定義してしまう方法を見つけました!!
$KCODE = "s" require 'rubygems' require 'scrapi' require 'pp' require 'kconv' describe "Scrapiテスト" do before do @html = open("test.html","r").read() end it "クラス名が2パターンあっても・・・" do @html.length.should > 0 items = Scraper.define do process 'div.hoge-hoge' , "messages[]" => :text process 'div.hoge_hoge' , "messages[]" => :text result :messages end.scrape( @html , :parser_options => {:char_encoding=>'sjis'} ) items.size.should == 3 end after do @html = nil end end
こんなhtmlを食わせる。
<html> <div class=hoge-hoge> hoge1 </div> <div class=hoge_hoge> hoge2 </div> <div class=hoge-hoge> hoge3 </div> </html>
そうすると、itemsには、hoge1,hoge2,hoge3が入ります。