前提・実現したいこと
Rubyでライブラリを使わずにwebページからスクレイピングした値をハッシュに保存し配列にしたいのですがスクレイピングした値を文字列に変換する事ができません。
見本はこのようになっています
{"拠点名"=>"本社", "郵便番号"=>"〒106-6231", "住所"=>"東京都港区六本木3-2-1 六本木グランドタワー31F", "アクセス"=>"東京メトロ南北線「六本木一丁目」駅直結"} {"拠点名"=>"仙台オフィス", "郵便番号"=>"〒980-0013", "住所"=>"宮城県仙台市青葉区花京院1-1-10 あいおいニッセイ同和損保仙台ビル9F", "アクセス"=>"JR「仙台」駅、「あおば通」駅地下鉄南北線「広瀬通」駅"} {"拠点名"=>"新宿第2オフィス", "郵便番号"=>"〒151-0051", "住所"=>"東京都渋谷区千駄ヶ谷5-34-7 NEX新宿ビル10F", "アクセス"=>"JR、小田急線、京王線「新宿」駅東京メトロ丸ノ内線、副都心線、都営新宿線「新宿三丁目」駅"}...
発生している問題・エラーメッセージ
[{:拠点名=> ["<tr><th>\xE6\x8B\xA0\xE7\x82\xB9\xE5\x90\x8D</th><td>\xE6\x9C\xAC\xE7\xA4\xBE</td></tr><tr><th>\xE9\x83\xB5\xE4\xBE\xBF\xE7\x95\xAA\xE5\x8F\xB7</th><td>\xE3\x80\x92106-6231</td></tr><tr><th>\xE4\xBD\x8F\xE6\x89\x80</th><td>\xE6\x9D\xB1\xE4\xBA\xAC\xE9\x83\xBD\xE6\xB8\xAF\xE5\x8C\xBA\xE5\x85\xAD\xE6\x9C\xAC\xE6\x9C\xA83-2-1\xE3\x80\x80\xE5\x85\xAD\xE6\x9C\xAC\xE6\x9C\xA8\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xB3\xE3\x83\x89\xE3\x82\xBF\xE3\x83\xAF\xE3\x83\xBC31F</td></tr><tr><th>\xE3\x82\xA2\xE3\x82\xAF\xE3\x82\xBB\xE3\x82\xB9</th><td>\xE6\x9D\xB1\xE4\xBA\xAC\xE3\x83\xA1\xE3\x83\x88\xE3\x83\xAD\xE5\x8D\x97\xE5\x8C\x97\xE7\xB7\x9A\xE3\x80\x8C\xE5\x85\xAD\xE6\x9C\xAC\xE6\x9C\xA8\xE4\xB8\x80\xE4\xB8\x81\xE7\x9B\xAE\xE3\x80\x8D\xE9\xA7\x85\xE7\x9B\xB4\xE7\xB5\x90</td></tr>"], :郵便番号=> ["<tr><th>\xE6\x8B\xA0\xE7\x82\xB9\xE5\x90\x8D</th><td>\xE6\x9C\xAD\xE5\xB9\x8C\xE3\x82\xAA\xE3\x83\x95\xE3\x82\xA3\xE3\x82\xB9</td></tr><tr><th>\xE9\x83\xB5\xE4\xBE\xBF\xE7\x95\xAA\xE5\x8F\xB7</th><td>\xE3\x80\x92060-0001</td></tr><tr><th>\xE4\xBD\x8F\xE6\x89\x80</th><td>\xE5\x8C\x97\xE6\xB5\xB7\xE9\x81\x93\xE6\x9C\xAD\xE5\xB9\x8C\xE5\xB8\x82\xE4\xB8\xAD\xE5\xA4\xAE\xE5\x8C\xBA\xE5\x8C\x97\xEF\xBC\x91\xE6\x9D\xA1\xE8\xA5\xBF3-3\xE3\x80\x80\xE6\x9C\xAD\xE5\xB9\x8CMN\xE3\x83\x93\xE3\x83\xAB12F</td></tr><tr><th>\xE3\x82\xA2\xE3\x82\xAF\xE3\x82\xBB\xE3\x82\xB9</th><td>\xE5\x9C\xB0\xE4\xB8\x8B\xE9\x89\x84\xE5\x8D\x97\xE5\x8C\x97\xE7\xB7\x9A\xE3\x80\x8C\xE6\x9C\xAD\xE5\xB9\x8C\xE3\x80\x8D\xE9\xA7\x85<br>\xE5\x9C\xB0\xE4\xB8\x8B\xE9\x89\x84\xE6\x9D\xB1\xE8\xA5\xBF\xE7\xB7\x9A\xE3\x80\x8C\xE5\xA4\xA7\xE9\x80\x9A\xE3\x80\x8D\xE9\xA7\x85</td></tr>"], :住所=> ["<tr><th>\xE6\x8B\xA0\xE7\x82\xB9\xE5\x90\x8D</th><td>\xE4\xBB\x99\xE5\x8F\xB0\xE3\x82\xAA\xE3\x83\x95\xE3\x82\xA3\xE3\x82\xB9</td></tr><tr><th>\xE9\x83\xB5\xE4\xBE\xBF\xE7\x95\xAA\xE5\x8F\xB7</th><td>\xE3\x80\x92980-0013</td></tr><tr><th>\xE4\xBD\x8F\xE6\x89\x80</th><td>\xE5\xAE\xAE\xE5\x9F\x8E\xE7\x9C\x8C\xE4\xBB\x99\xE5\x8F\xB0\xE5\xB8\x82\xE9\x9D\x92\xE8\x91\x89\xE5\x8C\xBA\xE8\x8A\xB1\xE4\xBA\xAC\xE9\x99\xA21-1-10\xE3\x80\x80\xE3\x81\x82\xE3\x81\x84\xE3\x81\x8A\xE3\x81\x84\xE3\x83\x8B\xE3\x83\x83\xE3\x82\xBB\xE3\x82\xA4\xE5\x90\x8C\xE5\x92\x8C\xE6\x90\x8D\xE4\xBF\x9D\xE4\xBB\x99\xE5\x8F\xB0\xE3\x83\x93\xE3\x83\xAB9F</td></tr><tr><th>\xE3\x82\xA2\xE3\x82\xAF\xE3\x82\xBB\xE3\x82\xB9</th><td>JR\xE3\x80\x8C\xE4\xBB\x99\xE5\x8F\xB0\xE3\x80\x8D\xE9\xA7\x85\xE3\x80\x81\xE3\x80\x8C\xE3\x81\x82\xE3\x81\x8A\xE3\x81\xB0\xE9\x80\x9A\xE3\x80\x8D\xE9\xA7\x85<br>\xE5\x9C\xB0\xE4\xB8\x8B\xE9\x89\x84\xE5\x8D\x97\xE5\x8C\x97\xE7\xB7\x9A\xE3\x80\x8C\xE5\xBA\x83\xE7\x80\xAC\xE9\x80\x9A\xE3\x80\x8D\xE9\xA7\x85</td></tr>"], :アクセス=> ["<tr><th>\xE6\x8B\xA0\xE7\x82\xB9\xE5\x90\x8D</th><td>\xE6\x96\xB0\xE5\xAE\xBF\xE3\x82\xAA\xE3\x83\x95\xE3\x82\xA3\xE3\x82\xB9</td></tr><tr><th>\xE9\x83\xB5\xE4\xBE\xBF\xE7\x95\xAA\xE5\x8F\xB7</th><td>\xE3\x80\x92151-0051</td></tr><tr><th>\xE4\xBD\x8F\xE6\x89\x80</th><td>\xE6\x9D\xB1\xE4\xBA\xAC\xE9\x83\xBD\xE6\xB8\x8B\xE8\xB0\xB7\xE5\x8C\xBA\xE5\x8D\x83\xE9\xA7\x84\xE3\x83\xB6\xE8\xB0\xB75-33-8\xE3\x80\x80SOUTHGATE\xE6\x96\xB0\xE5\xAE\xBF8F</td></tr><tr><th>\xE3\x82\xA2\xE3\x82\xAF\xE3\x82\xBB\xE3\x82\xB9</th><td>\xEF\xBC\xAA\xEF\xBC\xB2\xE3\x80\x81\xE5\xB0\x8F\xE7\x94\xB0\xE6\x80\xA5\xE7\xB7\x9A\xE3\x80\x81\xE4\xBA\xAC\xE7\x8E\x8B\xE7\xB7\x9A\xE3\x80\x8C\xE6\x96\xB0\xE5\xAE\xBF\xE3\x80\x8D\xE9\xA7\x85<br>\xE6\x9D\xB1\xE4\xBA\xAC\xE3\x83\xA1\xE3\x83\x88\xE3\x83\xAD\xE4\xB8\xB8\xE3\x83\x8E\xE5\x86\x85\xE7\xB7\x9A\xE3\x80\x81\xE5\x89\xAF\xE9\x83\xBD\xE5\xBF\x83\xE7\xB7\x9A\xE3\x80\x81\xE9\x83\xBD\xE5\x96\xB6\xE6\x96\xB0\xE5\xAE\xBF\xE7\xB7\x9A\xE3\x80\x8C\xE6\x96\xB0\xE5\xAE\xBF\xE4\xB8\x89\xE4\xB8\x81\xE7\x9B\xAE\xE3\x80\x8D\xE9\xA7\x85</td></tr>"]}]
該当のソースコード
Ruby
1require "uri" 2require "net/http" 3 4url = URI("https://www.dip-net.co.jp/company/access") 5 6 7https = Net::HTTP.new(url.host, url.port); 8https.use_ssl = true 9 10request = Net::HTTP::Get.new(url) 11 12response = https.request(request) 13html = response.read_body 14 15#puts html 16 17tbodies = html.scan(/<table>(.+?)</table>/m) #/<table>.?</table>/m 18 19table = [] 20 21address_texts = tbodies.index('td') 22 23tbodies.each_slice(4) do |office, postal_code, address, description| 24 hash = { 25 "拠点名": office, 26 "郵便番号": postal_code, 27 "住所": address, 28 "アクセス": description 29 } 30 table << hash 31end 32 33pp table.first(3)
試したこと
指定しているcssのコードを入れ替える
調べたURL
qiita,ハッシュに関して,0からスクレイピングを作る
補足情報(FW/ツールのバージョンなど)
Ruby ver 2.7.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/05 02:19
2020/09/05 02:40
2020/09/05 07:01 編集
2020/09/05 09:14