プログラミング初心者です。
日本全国の神社とその住所の一覧データが欲しくてRubyでAnemoneとNokogiriを使ってこのサイトhttp://www.jinja.in/をスクレイピングし、取得した情報をcsvに書き込んでいたのですが、それぞれの地方の神社一覧の最初のページの内容しか取れていないようでした。
全部を取得したいのですが、どのように記述すればいいでしょうか。
ruby
1require 'nokogiri' 2require 'anemone' 3require 'csv' 4require 'open-uri' 5require 'kconv' 6 7URL = "http://www.jinja.in/" 8PATTERN = %r[hokkaido|tohoku|chubu|kinki|chugoku|shikoku|kyushu|okinawa] 9@spot= [] 10@address= [] 11 12Anemone.crawl(URL, :delay =>, :depth_limit =>1, :user_agent => "Mac Safari") do |anemone| 13 14 anemone.on_pages_like(PATTERN) do |page| 15 puts page.url 16 end 17 anemone.focus_crawl { |page| page.links.slice(0..9) } 18 19 anemone.on_every_page do |page| 20 doc = Nokogiri::HTML.parse(page.body.toutf8) 21 doc.css('h3.title').each do |sp| 22 @spot.push(sp.text) 23 end 24 doc.css('div.field-item').each do |add| 25 @address.push(add.text) 26 end 27end end 28 29 CSV.open("file.csv","w") do |csv| 30 csv << @spot 31 csv << @address 32 end
また、このサイトをスクレイピングするときは:delayはどのくらい空ければ良いのでしょうか。
稚拙な質問ですがよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/17 04:18