前提・実現したいこと
Rubyを使って注文履歴ページから商品情報を取得してリストを作成したいです。
発生している問題・エラーメッセージ
indexが0から始まるものと1から始まるものがあるのですが、全て0から始まるのでは?という疑問です。教えていただけたら幸いです。
該当のソースコード
Ruby
1 def self.scrape_history(browser, array = []) 2 3 page_item_count = browser.divs(class: "a-box-group").count 4 for idx in 0..(page_item_count - 1) do 5 browser.div(class: "a-box-group", index: idx).scroll.to 6 name = browser.div(class: "a-box-group", index: idx).element(class: "a-box", index: 1).element(class: "a-link-normal", index: 1).text() 7 ap name 8 url = browser.div(class: "a-box-group", index: idx).element(class: "a-box", index: 1).a(class: "a-link-normal", index: 1).href 9 ap url 10 purchased_at = browser.div(class: "a-box-group", index: idx).element(class: ["a-color-secondary", "value"], index: 0).text() 11 ap purchased_at 12 price = browser.div(class: "a-box-group", index: idx).element(class: ["a-color-secondary", "value"], index: 1).text().delete("¥").delete(",").strip 13 ap price 14 hash = {} 15 hash["name"] = name 16 hash["url"] = url 17 hash["purchased_at"] = purchased_at 18 hash["price"] = price 19 array << hash 20 end
試したこと
indexについてたくさん調べたのですが、なぜこの違いが発生するのかわかりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
これ、始まりじゃなくてインデックスが 0 のものと 1 のものを個別に表してるだけでしょう。
回答ありがとうございます。そうだったんですね。区別しているのでしょうか?
そうなると0,1,2,3と区別した方が分かりやすいのではと思ってしまいました。
プログラミング初心者で、かなりとんちんかんなことを言っているかもしれませんが、返信していただけたら嬉しいです。
二つしか使わないなら 2 以上は出てこないと思います。
name, url, purchased_at, price の四つがあるのですが、これを2つに区別すると言ったことでしょうか?
四つあっても、最初の二つしかリテラルで使わないなら 0 と 1 しか出てこないだろうという意味です。そこから先はわかりません。
そうなのですね。ありがとうございます。
回答2件
あなたの回答
tips
プレビュー