APIを使用しwebのスクレイピングを試しています。
拾いたいデータ法令API
要素を一つ取りたい場合、下記のコードで出来ました。
ruby
1 2require 'net/http' 3require 'uri' 4require 'rexml/document' 5 6 7uri = URI.parse('https://elaws.e-gov.go.jp/api/1/lawdata/325AC0000000201') 8xml = Net::HTTP.get(uri) 9 10doc = REXML::Document.new xml 11REXML::XPath.each(doc, '//Sentence') do |e| 12 puts e.text 13 14 end
一つだけでなく、複数要素を拾いたく色々試してみましたが、反応なしやエラーになりました。
どなたかご教授いただけたら幸いです。
試してみたコード、
ruby
1require 'net/http' 2require 'uri' 3require 'rexml/document' 4 5 6uri = URI.parse('https://elaws.e-gov.go.jp/api/1/lawdata/325AC0000000201') 7xml = Net::HTTP.get(uri) 8 9doc = REXML::Document.new xml 10REXML::XPath.each(doc) do |e| 11 puts e.text.elements["//*[@id='*']/div[1]/span[2]"] 12 puts e.text.elements["//*[@id='*'']/div[2]/div/span[2]"] 13 end
2つあるいは3つの要素を拾ってeach doで処理したいです。
初歩的な理解が不足していると思いますがよろしくお願いします。
あなたの回答
tips
プレビュー