0

私は Readmill からハイライトを取得しようとしていますが、それらを取得する最も簡単な方法は、API の代わりに検索を使用することです。

の終わりに

https://readmill.com/search?q=%22the+great+gatsby%22+%22Francis+Scott+Fitzgerald%22&filter=ハイライト

あなたが見つけます

<script type="text/javascript" id="page-template-data">
  App.templateData.filter = 'highlight';
App.templateData.searchResult = 

そしてJSONの束。この JSON を解析する便利な Rails フレンドリーな方法はありますか?

4

1 に答える 1

2

まあ、検索結果が一行にまとまっている顔に助けられていますね。今、彼らがこれについて何かを変更した場合、これは壊れます。ただし、これはテキスト操作を使用してこれを JSON 配列に抽出します。

require 'open-uri'
require 'json'

json = {}
open('https://readmill.com/search?q=the+great+gatsby&filter=highlight').each do |line|
  if line =~ /App.templateData.searchResult/
    json = JSON.parse line.sub('App.templateData.searchResult = ','').strip.to_s[0..-2]
    break
  end
end

puts json.map{|j| j["title"] }
 => “Gatsby?” demanded Daisy. “What Gatsby?”
    ...
于 2013-06-09T18:37:54.960 に答える