テーブルからデータを削り取ろうとしているが、収集したデータを反復できない理由を理解できない。ループからchildren.textを呼び出すときにNoMethodErrorが発生するが、ループの外で動作する
私はテーブル内の各ノードを繰り返し処理したいと思っていますが、文章はループ内に書かれている場合にのみ機能します。
Take a look at the terminal I'm getting
これは、ループのputs
外が正常に動作していることは明らかだが、同じ行をループで失敗します。私は
puts entry.children[1]
を使用している場合、私は、ループ内の適切な応答を得るが、children.text
を追加すると、それが失敗する原因です:
require 'HTTParty'
require 'Nokogiri'
require 'JSON'
require 'Pry'
require 'CSV'
module Guns
class Scraper
page = HTTParty.get('http://www.gunviolencearchive.org/last-72-hours')
parse_page = Nokogiri::HTML(page)
incidents = Array.new
raw_table = parse_page.css('#block-system-main').css('.sticky-enabled')
table_entries = raw_table.xpath('//tbody')[0].children
state = table_entries.children[1].children.text
puts table_entries.children[1].children.text
table_entries.each do |entry|
puts entry.children[1].children.text
end
Pry.start(binding)
end
end
私はクライアント側で文字列のスライシングを行うことができるかもしれません私はこの問題を解決できない場合は最終的なプログラムが、私はむしろする必要はありません。
小文字にする宝石の名前を折り畳むのは慣習的です。エラーのイメージを見せる代わりに、エラーの重要な部分をテキストとしてコピーして質問に貼り付け、適切に書式を設定する必要があります。リンクは腐って壊れてしまい、あなたの質問があまり意味をなさないでしょう。 「[mcve]」を参照してください。また、質問自体に問題を示すページから抽出した絶対最小限のHTMLが必要です。 –