【VBA】楽天ランキングページをWebスクレイピング③

VBAで実践するWeb操作 Excel

前回は、手順1、手順2について説明し、楽天ランキングページから、商品を1件ずつ取得することができました。

今回は、取得した商品の「値」の取得方法を説明します。

  1. 楽天ランキングページ(https://ranking.rakuten.co.jp/weekly/)にアクセスし、「ページ全体」を取得する。
  2. 「ページ全体」から、ランキングに掲載されている「商品」を1件ずつ取得する。
  3. 「商品」から、「値」(商品名、価格、URL)を取得する。
  4. 「値」を書きだす。
  5. 2~4を商品の数だけ繰り返す。
前回記事はこちら

商品のHTMLソースを取得する

商品1件のHTMLソースをコピーして、中身を見てみましょう。
以下の手順で実行します。

  1. 「Google開発者ツール」を起動。
  2. 「Elements」ペイン対象の要素を右クリックし、「CopyElement」を選択。
  3. 要素の内容がコピーされるので、テキストエディタ等に貼り付け。

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スクレイピングで取得するための説明は以上となります。

次回の記事ではまとめと補足説明を行います。

コメント

タイトルとURLをコピーしました