適当に検索した要素のXPATH,CSSフルパスを調べる
ここまでHpricot見てきたけど、キモは「検索方法」だなぁと思う。要素の指定さえ正しくすれば返ってきた要素の加工は、今までのrubyの知識で十分だし、どっちかっていうとCSSやXPATHの知識が必要ぽい。以下ひっかかった要素のフルパスを返すメソッドをメモしておく。
CSSの場合。
doc = Hpricot(open("http://newsing.jp")) (doc/"a.medium").each do |text| puts text.css_path end html > body > table:nth(0) > tr:nth(1) > td:nth(1) > table:nth(2) > tr > td:nth(0) > div:nth(0) > table > tr > td:nth(2) > table:nth(2) > tr > td > a:nth(0) (中略) html > body > table:nth(0) > tr:nth(1) > td:nth(1) > table:nth(2) > tr > td:nth(0) > div:nth(22) > table > tr > td:nth(2) > table:nth(2) > tr > td > a:nth(1)
XPATHの場合。
doc = Hpricot(open("http://newsing.jp")) (doc/"a.medium").each do |text| puts text.xpath end /html/body/table[1]/tr[2]/td[2]/table[3]/tr/td[1]/div[1]/table/tr/td[3]/table[3]/tr/td/a[1] (中略) /html/body/table[1]/tr[2]/td[2]/table[3]/tr/td[1]/div[23]/table/tr/td[3]/table[3]/tr/td/a[2]