2016.02.15みなさん、こんにちは!タカハシ(@ntakahashi0505)です。初心者向けエクセルVBAでInterneteExplorer(IE)を操作するシリーズです。前回はこちらの記事です。初心者向けエクセルVBAでInterneteExplorer(IE)を操作するシリーズです。今回から何回かにわたって、ブログサイトの記事一覧をWEBスクレイピングで取得する方法をお伝えします。tonari-it.com2016.02.12Yahoo!検索結果一覧から記事タイトルを取得する方法をお伝えしました。今回は記事タイトル、URLに加えて、紹介文、つまりディスクリプションも取得してみたいと思います。いうことで、エクセルVBAでIEを操作して検索結果一覧ページから記事紹介文を取得する方法です。前回のおさらいYahoo!検索結果ページから記事・URL・ディスクリプションを取得するclass属性でdiv要素のコレクションを取得しループするdiv要素からタイトル・URL・ディスクリプションを取り出す実行して動作確認をするまとめ連載目次:エクセルVBAでIEを操作してWEBスクレイピング前回のおさらい前回作成したプログラムをおさらいしたいと思います。以下のYahoo!のページから任意のキーワードで検索をするマクロを作成しました。JAPAN日本最大級のポータルサイト。検索、オークション、ニュース、天気、スポーツ、メール、ショッピングなど多数のサービスを展開。あなたの生活をより豊かにする「課題解決エンジン」を目指していきます。www.yahoo.co.jpコードはコチラです。Sub17~20行目までは、Yahoo!の検索窓にキーワードを入力してクリックする処理ですね。25~30行目が、検索結果ページから記事タイトル(h3タグ)とそのリンクURLを取得してデバッグ出力する部分です。IEの読み込み待ち処理は34~40行目のWaitというSubプロシージャに部品化しました。Yahoo!検索結果ページから記事・URL・ディスクリプションを取得する今回は、記事タイトルとURLに加えて、その紹介文つまりディスクリプションを取得していきます。Chromeのデベロッパーツールで、方針を考えてみましょう。調べてみると...目的のディスクリプションはclass属性が「cut3」というpタグに記述されているようです。p要素は段落を表す要素ですね。このHTMLドキュメントにはpタグは他の部分にもたくさん使われているので、もう少し条件を絞り込まないといけません。対応する記事タイトルとURLリンクもセットで取得したいですよね...そこで、注目するのが以下のclass属性「w」のdivタグです。div要素はブロックを作るための要素ですが、このclass属性wのdiv要素は、記事タイトル、リンクURL、ディスクリプションを含んでいます。この要素をコレクションとして取得することを考えます。class属性でdiv要素のコレクションを取得しループするclass属性がwの要素を取得すればいいので、getElementsByClassNameメソッドですね。Each文でループをします。divdiv要素からタイトル・URL・ディスクリプションを取り出す取得したdiv要素の中に、a要素とp要素は1つずつしかありませんので、それぞれgetElementsByTagNameでコレクションを取得しつつ、そのインデックス0の要素を取得してあげればOKです。前述のコメント処理を実際の処理に書き換えると以下のようになります。div実行して動作確認をするまとめのコードは以下のとおりです。Subプロシージャを実行すると、InputBoxでキーワードの入力を求められます。入力すると、Yahoo!検索結果ページから、以下のようなデータを抽出できます。まとめ以上、エクセルVBAでIEを操作してYahoo!検索結果ページからタイトル・URL・ディスクリプションを取得することができました。次回はページャーを自動で移動しながら、2ページ目以降の記事一覧も取得する方法についてお伝えします。【エクセルVBAでIE操作】ページャーをめくって複数ページからデータを取得するエクセルVBAでIEを操作する初心者向けのシリーズです。今回はページャーをめくって自動でクロールする方法とその見つけ方について解説をします。Webスクレイピングの効率が格段に上がりますよ!tonari-it.com2016.02.25どうぞお楽しみに!連載目次:エクセルVBAでIEを操作してWEBスクレイピングIEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルVBAで実行時間を手軽に測定するTimerObjectクラスを作るエクセルVBAでは使い回しをするような機能をクラス化しておくと便利ですよね。今回は、使用頻度が高い機能ということで、エクセルVBAで実行時間を測定するのに便利なタイマークラスの作り方をお伝えしていきます。2019.05.04Excel・VBA活用術エクセルVBAで文字コードUTF-8のCSVファイルを書き出す方法エクセルのデータをファイルに書き出す方法シリーズです。今回は、エクセルVBAでADODB.Streamオブジェクトを使ってUTF-8の文字コードのCSVファイルを書き出す方法についてお伝えします。【エクセルVBA】Changeイベントと組み合わせてもっと便利に!検索にヒットした値をドロップダウンリストに表示する方法エクセルのChangeイベントと、Validationオブジェクトを用いたドロップダウンリストを作成する方法を組み合わせて、セルに入力した値をマスタシートから検索し、検索にヒットした値を入力したセルのドロップダウンリストに表示させる方法をご紹介しています。この方法を使えば、入力作業が楽になるかもしれません。不要なシートを作らせない!エクセルのデフォルトシート数を変更する方法エクセルのブックを開いたときに自動的に作成されるシート数を、任意の数に変更する方法をご紹介しています。オプションから基本設定を開いて、該当項目の値を設定するだけで変更完了!「ブックを開いたときに不要なシートがある!」「毎回不要なシートを削除するのが面倒だ!」という方にオススメです。初心者向けエクセルVBAで請求データから請求書を作成するシリーズです。今回はInputBoxメソッドを使った入力ダイアログの使い方です。引数や引数名について、またInputBox関数との違いについても解説します。初心者向けエクセルVBAで請求書を作成するシリーズ。今回は、エクセルVBAで頻繁に取り扱うワークシートを「オブジェクト名」を使って指定する方法です。オブジェクト名とは何か、またその編集方法もお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。