【ExcelVBA】HTTP/HTTPS通信によるWebページ情報取得の方法
VBAでWebページの情報を自動的に取得したい方向けに書いています。
記事の内容
Webページから日々情報を自動的に取得したいと思ったことはありませんか?
HTTP/HTTPS通信によるWebページ情報取得を紹介します。
VBAでHTTP/HTTPS通信によるWebページ情報取得(Webスクレイピング)
今回はGoogleニュースのヘッドラインの記事タイトルとリンク先URLの取得を行います。
以下がサンプルプログラムです。
- Sub NEWS_GET()
- Dim httpreq As Object 'サイトデータ格納先
- Dim html As Object 'ドキュメント格納先
- Dim html_target As Object '対象Webページ情報格納先
- Dim i As Long
-
- 'XMLHTTPオブジェク生成
- Set httpreq = CreateObject("MSXML2.ServerXMLHTTP")
-
- '指定したURLのWebページ情報をHTTPリクエストで取得
- httpreq.Open "GET", "https://news.google.com/?tab=rn&hl=ja&gl=JP&ceid=JP:ja"
- httpreq.send
-
- 'ページが完全に表示されるまで待機
- Do While httpreq.readyState < 4
- DoEvents
- Loop
-
- 'htmlドキュメント作成
- Set html = CreateObject("htmlfile")
- 'html文字列をhtmlドキュメントに書き込み
- html.write httpreq.responseText
-
- i = 1
- '対象Webページ情報の取得
- For Each html_target In html.getElementsByTagName("h3") 'google newsのヘッドライン
- Cells(i, 1).Value = html_target.innerText
- Cells(i, 2).Value = html_target.getElementsByTagName("A")
- i = i + 1
- Next
-
- 'オブジェクト解放
- Set httpreq = Nothing
- Set html_news = Nothing
-
- End Sub
11行目:Webページ情報を取得したいURLを設定
26行目:取得したい対象のタグを設定(今回はh3タグを設定しています)
取得元URL
取得元は以下のとおりです。
赤枠のニュースタイトルとニュースのリンク先をExcelのA列とB列に出力します。
https://news.google.com/?tab=rn&hl=ja&gl=JP&ceid=JP:ja"
取得結果
取得結果は以下のとおりです。
A列にニュースタイトル、B列にリンク先のURLが出力できています。
まとめ
VBAでHTTP/HTTPS通信によるWebページ情報取得を紹介しました。
VBAのプログラウだけで簡単にWebページの情報を取得できました。
業務効率化、情報収集に役に立てていただけたらと思います。
最後までご覧いただき、ありがとうございました。
「【VBA】WebページのファイルをURLDownloadToFile関数を使用するダウンロード方法」も紹介していますので、もしよろしければご覧ください。
「【VBA】CDOでメール送信する方法(メーラーインストールなし)」も紹介していますので、もしよろしければご覧ください。


最近のコメント