質問: doc.css('td') p 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]を使っています ここにより詳細な情報を記載してください。
回答: 書いてみました ``` require 'open-uri' # Nokogiriライブラリの読み込み require 'nokogiri' # スクレイピング先のURL url = 'https://www.dip-net.co.jp/company/access' charset = nil html = URI.open(url) do |f| charset = f.charset # 文字種別を取得 f.read # htmlを読み込んで変数htmlに渡す end # htmlをパース(解析)してオブジェクトを生成 doc = Nokogiri::HTML.parse(html, nil, charset) table = [] address_texts = doc.css('td').map(&:text) address_texts.each_slice(4) do |office, postal_code, address, description| hash = { office: office, postal_code: postal_code, address: address, description: description } table << hash end pp table.first(3) # => # [{:office=>"本社", # :postal_code=>"〒106-6231", # :address=>"東京都港区六本木3-2-1 六本木グランドタワー31F", # :description=>"東京メトロ南北線「六本木一丁目」駅直結"}, # {:office=>"札幌オフィス", # :postal_code=>"〒060-0001", # :address=>"北海道札幌市中央区北1条西3-3 札幌MNビル12F", # :description=>"地下鉄南北線「札幌」駅地下鉄東西線「大通」駅"}, # {:office=>"仙台オフィス", # :postal_code=>"〒980-0013", # :address=>"宮城県仙台市青葉区花京院1-1-10 あいおいニッセイ同和損保仙台ビル9F", # :description=>"JR「仙台」駅、「あおば通」駅地下鉄南北線「広瀬通」駅"}] ``` なにか参考になれば幸いです