環境構築・零

環境構築のその先へ

百人一首apiを利用する

JSONからあとは抜き出すだけ。もう少し手間をかける。 現在は出力結果より、だいぶできている。

[ 試作 ]

百人一首を読み込むことで、ナンバーをランダムに切り替え文字列を出力するようにしたい。

現状は、ナンバーの一覧が出力されるだけ。これから加工するが時間がかかりそう。

※ ナンバーの取得ができていない。APIサーバ負荷を考慮し中断。

[ 完成 ]

f:id:emerald00:20190916124426p:plain
百人一首

百人一首apiからテキストファイルに書き出し、テキスト整形を施しzinbeijett2で検索。

※ これで、百人一首を内容から検索できる。

[ 百人一首apiからJSONへ変換するRubyスクリプト ]

※ 出力結果をテキストファイルへ手動で保存。

# frozen_string_literal: true

require 'net/http'
require 'uri'
require "rexml/document"
require "open-uri"
require 'active_support/all'

url = 'http://api.aoikujira.com/hyakunin/get.php'
uri = URI.parse(url)
doc = REXML::Document.new(open(uri).read)
hash = Hash.from_xml(doc.to_s)
json = hash.to_json
#tuzuri = JSON.pretty_generate(json)
result = JSON.parse(json)
item = result["items"]["item"]

# puts result
puts ''
puts ' 百人一首 '.center(60, '-')
puts ''
puts item
puts ''
puts ' 百人一首 '.center(60, '-')
puts ''

#<item no="1">
#<kami>秋の田の かりほの庵の 苫をあらみ</kami>
#<simo>我が衣手は 露にぬれつつ</simo>
#<kami_kana>あきのたのかりほのいほのとまをあらみ</kami_kana>
#<simo_kana>わかころもてはつゆにぬれつつ</simo_kana>
#<sakusya>天智天皇</sakusya>
#</item>

出力結果(ファイルにまとめました)

整形前ファイル

gist.github.com

整形後ファイル

gist.github.com

追記

この検索機能に文字列をランダムに実行するように仕込めば、百人一首で100通りの言葉が流れる。百人一首をヒアドキュメントか文字列で直接コード内で呼び出せるようにするか、テキストファイルの設置場所を任意で決めて、そこにファイルを置くことから始める。直接APIで処理を継続しないように。スクレイピングはサーバの負荷を考慮しよう。

Copyright © 2007-2020 Takayuki Kamiyama. All Rights Reserved.