前回は、手順1、手順2について説明し、楽天ランキングページから、商品を1件ずつ取得することができました。
今回は、取得した商品の「値」の取得方法を説明します。
- 楽天ランキングページ(https://ranking.rakuten.co.jp/weekly/)にアクセスし、「ページ全体」を取得する。
- 「ページ全体」から、ランキングに掲載されている「商品」を1件ずつ取得する。
- 「商品」から、「値」(商品名、価格、URL)を取得する。
- 「値」を書きだす。
- 2~4を商品の数だけ繰り返す。
前回記事はこちら
商品のHTMLソースを取得する
商品1件のHTMLソースをコピーして、中身を見てみましょう。
以下の手順で実行します。
- 「Google開発者ツール」を起動。
- 「Elements」ペイン対象の要素を右クリックし、「CopyElement」を選択。
- 要素の内容がコピーされるので、テキストエディタ等に貼り付け。
HTMLの中身を確認する
取得したHTMLの中身を確認してみましょう。
要素の取得
「要素」の取得方法について検討します。
商品名とURLは「rnkRanking_itemName」、価格は「rnkRanking_price」のクラス名を持つタグに含まれていましたので、「getElementsByClassName」で取得できそうです。
値の取得
要素に含まれる「値」の取得方法を検討します。
まず、商品名と価格は前回使用した「innerText」プロパティで取得できそうです。
「URL」について、取得したい値はこれまでに説明した「innerText」「outerHtml」等のプロパティではなく、<a>タグに含まれる「href=”….”」の部分になります。取得方法が異なるので、注意が必要です。
name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
price = product.getElementsByClassName("rnkRanking_price")(0).innerText
url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
次回の予定
VBAで楽天ランキングページをWebスクレイピングで取得するための説明は以上となります。
次回の記事ではまとめと補足説明を行います。
コメント