Ruby

この間、HTMLのタグを自分で処理しててひどい目にあったの。やっぱり、そういうのは妹のふりして弟にやらせるか、出来合いのツールに頼るべきよね。

そしたら、rubyにnokogiriってライブラリがあるらしいと知ったから使ってみたわ。

参考にしたのは、ここね。ひとつはPDFだから気をつけて。

Nokogiri を使った Rubyスクレイピング [初心者向けチュートリアル]http://morizyun.github.io/blog/ruby-nokogiri-scraping-tutorial/
Xpathチートシートhttp://aoproj.web.fc2.com/xpath/XPath_cheatsheets_v2.pdf

とりあえず、サンプルページからリンクを抜き出してみよっか。

#!/usr/bin/ruby -EUTF-8

require 'nokogiri'
require 'open-uri'

url = 'http://www.yahoo.co.jp/'

charset = nil
html = open(url) do |f|
  charset = f.charset # 文字種別を取得
  f.read # htmlを読み込んで変数htmlに渡す
end

# htmlをパース(解析)してオブジェクトを作成
doc = Nokogiri::HTML.parse(html, nil, charset)

# タイトルを表示
p doc.title
# リンクを列挙してみよう。
doc.xpath('//a').each do |node|
  #p node.attributes
  print <<EOM
#{node.children.inner_text} #{node.attributes["href"].value}
EOM
end

これを実行すると、こんなのが出てくるの。

"Yahoo! JAPAN"
ヘルプ  http://help.yahoo.co.jp/
写真で見る「東京モーターショー」        http://motorshow.carview.yahoo.co.jp/tokyo-motorshow/2015/
露機墜落 データは爆破示唆か     http://news.yahoo.co.jp/pickup/6180058
杭データ偽装「軽い気持ち」      http://news.yahoo.co.jp/pickup/6180052
車衝突 5歳児投げ出され死亡      http://news.yahoo.co.jp/pickup/6180063
米雇用統計 就業者数が大幅増     http://news.yahoo.co.jp/pickup/6180059
パラ五輪中 小中学校を休日案     http://news.yahoo.co.jp/pickup/6180046
真央SP首位 五輪「頭にある」     http://news.yahoo.co.jp/pickup/6180053
虎 球児に背番号「18」を用意     http://news.yahoo.co.jp/pickup/6180054
菜々緒の悪女役 祖母を泣かす     http://news.yahoo.co.jp/pickup/6180057
もっと見る      http://news.yahoo.co.jp/list/?d=20151107&mc=f&mp=f
完全復活        http://headlines.yahoo.co.jp/hl?a=20151106-00000135-spnannex-spo.view-000
ショッピング    http://shopping.yahoo.co.jp/
ヤフオク!       http://auctions.yahoo.co.jp/
:
:
ニュース        http://news.yahoo.co.jp/
天気    http://weather.yahoo.co.jp/weather/
スポーツ        http://sports.yahoo.co.jp/
ファイナンス    http://finance.yahoo.co.jp/
テレビ  http://tv.yahoo.co.jp/
GYAO!   http://gyao.yahoo.co.jp/
Y!モバゲー      http://yahoo-mbga.jp/?_ref=aff%3Dysm001
地域    http://loco.yahoo.co.jp/
地図    http://map.yahoo.co.jp/
路線    http://transit.yahoo.co.jp/
:
:
メール  http://mail.yahoo.co.jp/

うーん、悪くないわね。 これで目的のサイトもうまく処理できるかしら?


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-05-09 (月) 11:17:33