Webスクレイピングの基本!HTTP通信について

Excel
この記事は約4分で読めます。

VBAでWebブラウザ操作を自動化するにあたって、基本的なことをまとめました。

VBAでのWebスクレイピングは初めてだったので、改めて基本的なことを学習したので、Webスクレイピングが初めての方にシンプルにお伝えできればと思います。

 

Webで使われている通信について

WebブラウザとWebサーバー間のやり取りは、HTTP通信を使って行われます。

インターネットでホームページを見たいとき、このHTTP通信を使ってWebブラウザが要求し、Webサーバーから目的のホームページの情報を受け取ります。

WebブラウザからWebサーバーに要求することを「リクエスト」といい、Webサーバーから帰ってきたデータを「レスポンス」といいます。

 

Webスクレイピングも、WebブラウザがWebサーバーに要求をして、Webサーバーが要求に応える、の繰り返しで行われます。

 

 

HTTP通信のデータ形式について

WebブラウザとWebサーバー間では、JSONという決まったデータ形式でやり取りを行います。例えば以下のようなものがJSONで書かれたデータです。”キー”と”データ”がセットになっています。

{
    "name": "太郎",
  "phone”:”123-4567 ",
    "email":"test@abc.com"
}

Webサーバーにリクエストをする際は、上記のようなJSON形式でリクエストデータを作成して送ります。

そして、Webサーバーからのレスポンスとして、JSON形式でデータが返ってきます。

 

 

リクエストについて

リクエストの形式には、いくつか種類があります。主に使用する3つのリクエストメソッドは以下です。

 

GETリクエスト

GET送信はURLの末尾に「?」とデータを付けて送信します。

GET送信はURLの後ろにデータを付けるため、URLの長さの上限があります。

送信データがURLと一緒にアドレスバーに表示され、データが見えてしまうため、パスワード入力を伴うログイン処理等には向いていません。

 

POSTリクエスト

POST送信は、データをbody要素に記述して送信します。

GET送信と違い、データの制限や外から見えることはないため、用途によって使い分けると良いです。

例として図書館の本検索サイトで、検索窓に「パソコン 使い方」と入力して、検索ボタンを押した際に送るリクエストデータ例です。下記URLに、JSONデータを内部的に付けて送ります。

 

 

DELETEリクエスト

データを削除する際に使用します。URLに削除したい対象のIDを指定します。

 

 

レスポンスについて

リクエストデータと同様、レスポンスもJSON形式で返ってきます。例えば、新宿駅の緯度経度をリクエストした場合に返ってくるレスポンスデータは以下のようになります。

{
"name": "新宿駅",
"latitude": "35.689607",
"longitude": "139.700571"
}

 

 

まとめ

このようなリクエストデータを使用して、VBAからWebブラウザの操作を行うことができます。

 

VBAを使用したWebブラウザ操作自動化について、以下に詳しく書いたので見てみてくださいね!

VBAとSeleniumBasicライブラリでブラウザ操作自動化!

VBAでSeleniumを使わずにEdgeブラウザ操作する
VBAでEdgeブラウザを操作したいけど、環境整えるのにハードル高くて、ライブラリもインストールできない!VBAだけで何とかならないか!?と思って調査しました。 Webスクレイピングの基本についての記事もありますので、まずはそちらをチェック...

VBAでSeleniumを使わずにEdgeブラウザ操作する

VBAでSeleniumを使わずにEdgeブラウザ操作する
VBAでEdgeブラウザを操作したいけど、環境整えるのにハードル高くて、ライブラリもインストールできない!VBAだけで何とかならないか!?と思って調査しました。 Webスクレイピングの基本についての記事もありますので、まずはそちらをチェック...

 

Webスクレイピングの基本について、別の記事もありますのでそちらもチェックしておくことをおすすめします。

Webスクレイピングの基本!要素の属性とXPathの調べ方

Webスクレイピングの基本!要素の属性とXPathの調べ方
VBAでWebブラウザ操作を自動化するにあたって、基本的なことをまとめました。 今回は、Webページ内の要素を操作するときに必要な、要素の情報を調べる方法です。Webスクレイピングが初めての方にシンプルにお伝えできればと思います。 Webペ...