【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する

★気に入ったらシェアをお願いします!


collection

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けエクセルVBAでInterneteExplorer(IE)を操作するシリーズです。

前回はこちらの記事です。

【エクセルVBAでIE操作】ページをクロールしてブログの記事一覧を取得する方法
初心者向けエクセルVBAでInterneteExplorer(IE)を操作するシリーズです。今回から何回かにわたって、ブログサイトの記事一覧をWEBスクレイピングで取得する方法をお伝えします。

ブログサイトの記事一覧をWEBスクレイピングで取得すべく、まずはトップページの記事一覧から記事タイトルとそのURLを取得ました。

今回は記事タイトル、URLに加えて、記事公開日とカテゴリも取得してみたいと思います。

色々なパターンを取得しながらスキルアップですよ!

どうぞよろしくお願いいたします!

スポンサーリンク

前回のおさらい:トップページの記事一覧から記事タイトルとURLを取得するプログラム

前回作成したプログラムをおさらいしたいと思います。

elListに記事一覧を囲うid=”list”のdiv要素を格納しているのですが、このdiv要素を展開してみますと…

こんな感じです。

まずid=”list”のdiv要素の直下の子要素たちが各記事を囲うdiv要素のコレクションになっています。

その各記事のdiv要素の中にはh2タグが一つだけですのでそれをelH2というオブジェクト変数に格納して、記事タイトルとURLを取得しました。

今回の方針:公開日とカテゴリを取得

各記事のdiv要素の中の

  • class=”published”のspanタグ内のテキストが公開日
  • class=”category”のspanタグ配下のaタグ内のテキストがカテゴリ

です。

今までのテクニックでなんとか取得できそうですね。

各記事の公開日とカテゴリも取得するプログラム

上記プログラムの31行目と33行目の間に、こちらの処理を追加します。

また、25行目の前に各変数の宣言

も忘れずに!

さて、プログラムの解説ですが、公開日を取得して出力するのはそれほど難しくはありませんね。class=”published”のspanタグ内のテキストが公開日です。

一方で、カテゴリは少し厄介です。class=”category”のspanタグ配下のaタグ内のテキストとして記載されていますが、そのaタグが複数存在する場合があるからです。

手順としては

  1. class=”category”の1番目の要素配下のa要素をコレクションとしてcolAnchorに取得
  2. コレクション内の全てのa要素について内部のテキストを取得
  3. そのテキストを文字列型の変数strCateに「, 」で連結
  4. LeftとLenで最後の余計な「, 」を削除
  5. strCateを出力

という流れになります。

これで実行をしてみると

記事一覧をdebug print

記事タイトル、URL、公開日、カテゴリときちんと出力されます。

カテゴリが複数ある場合は「Google Apps Script, データ分析・アクセス解析」などといったように、「, 」で連結されて出力されます。

まとめ

これで、VBAでInternet Explorerを操作してトップページの記事リストから記事タイトル、URL、公開日、カテゴリを取得できるようになりました。

しかしながら、記事数が20を超える場合が次のページもクロールしないといけませんよね。

次回はページャーを自動で移動しながら、2ページ目以降の記事一覧も取得する方法についてお伝えします。

【エクセルVBAでIE操作】ページャーを最後のページまでどんどんリンクする
エクセルVBAでIEを操作する初心者向けのシリーズです。今回はページャーを最後のページまで自動でクロールする方法とその見つけ方について解説をします。Webスクレイピングの効率が格段に上がりますよ!

どうぞお楽しみに!

連載目次:エクセルVBAをIEを操作してWEBスクレイピング

IEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。
  1. 【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
  2. 【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得
  3. 【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
  4. 【エクセルVBAでIE操作】ページ内のリンク先URLを全部取得する
  5. 【エクセルVBAでIE操作】ディスクリプションなどの要素をname属性でGetする
  6. 【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetする
  7. 【エクセルVBAでIE操作】WEBページのテーブル要素を自動で取得する方法
  8. 【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
  9. 【エクセルVBAでIE操作】ページをクロールしてブログの記事一覧を取得する方法
  10. 【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する
  11. 【エクセルVBAでIE操作】ページャーを最後のページまでどんどんリンクする
  12. 【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする
⇒以下連載中!