今日も元気にテクニカル

技術情報書きたいけど本ブログに書きたくないからこんな名前になりました。

適当に検索した要素のXPATH,CSSフルパスを調べる

ここまでHpricot見てきたけど、キモは「検索方法」だなぁと思う。要素の指定さえ正しくすれば返ってきた要素の加工は、今までのrubyの知識で十分だし、どっちかっていうとCSSXPATHの知識が必要ぽい。以下ひっかかった要素のフルパスを返すメソッドをメモしておく。

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]