前提・実現したいこと
Rubyで「nokogiri」ライブラリを使ってwebページからスクレイピングした値をハッシュに保存し配列にしたいのですがスクレイピングした値をハッシュに変換する事ができません。
見本はこのようになっています
{"拠点名"=>"本社",
"郵便番号"=>"〒106-6231",
"住所"=>"東京都港区六本木3-2-1 六本木グランドタワー31F",
"アクセス"=>"東京メトロ南北線「六本木一丁目」駅直結"}
発生している問題・エラーメッセージ
{"doc.css('th')"=> [#<Nokogiri::XML::Element:0x21c name="td" children=[#<Nokogiri::XML::Text:0x208 "本社">]>, #<Nokogiri::XML::Element:0x244 name="td" children=[#<Nokogiri::XML::Text:0x230 "〒106-6231">]>, #<Nokogiri::XML::Element:0x26c name="td" children=[#<Nokogiri::XML::Text:0x258 "東京都港区六本木3-2-1 六本木グランドタワー31F">]>, #<Nokogiri::XML::Element:0x294 name="td" children=[#<Nokogiri::XML::Text:0x280 "東京メトロ南北線「六本木一丁目」駅直結">]>,
該当のソースコード
Ruby
1# URLにアクセスするためのライブラリの読み込み 2require 'open-uri' 3# Nokogiriライブラリの読み込み 4require 'nokogiri' 5 6# スクレイピング先のURL 7url = 'https://www.dip-net.co.jp/company/access' 8 9charset = nil 10html = URI.open(url) do |f| 11 charset = f.charset # 文字種別を取得 12 f.read # htmlを読み込んで変数htmlに渡す 13end 14 15# htmlをパース(解析)してオブジェクトを生成 16doc = Nokogiri::HTML.parse(html, nil, charset) 17 18table = {} 19table["doc.css('th')"] = doc.css('td') 20 21p table
試したこと
指定しているcssのコードを入れ替える
調べたURL
https://qiita.com/s-yank/items/73e6a2b08afd81ad4f32
https://www.javadrive.jp/ruby/hash/index5.html
補足情報(FW/ツールのバージョンなど)
Ruby ver 2.7.1
ライブラリは[nokogiri]を使っています
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/28 09:44
2020/08/28 10:05