KiyoCode

【エクセルVBA】WEBスクレイピングで検索は簡単にできるよ【IE操作】

calendar

こんにちは!kiyokoです。

VBAを使ってのWEBスクレイピング関連の記事はこれまで二つ書きました。



そのシリーズです。

私の記事は、

①プログラミングなんてやったことない人
②どういう動きをしているかなんて詳細はどーでもいいからなるべくコピペで動かしたい人

向けです。特に①に当てはまる人は【エクセルVBA】WEBスクレイピングは簡単だから自力でできるよ【IE操作】もご覧になってくださいね。

クラウドワークス・ランサーズなどのクラウドソーシングサイトで、WEBスクレイピングの仕事依頼は多数あります。
それで、その大体が、Amazonヤフオクメルカリなど、ECサイトの商品データ抽出ツール作成依頼だったりします。

Amazon MWSのアカウントやその他ECサイトのアカウントを持っていないので、どんなサイトか知らないんですけれども、データ抽出と言えば検索ボックスから検索すればできるんじゃないのかな?ということで、WEBスクレイピング第三段。『検索』を今回書こうと思います。

スポンサーリンク

検索ボックスってなんでしょう。

検索ボックスっていうのは、このサイトでいえばメニューバーの一番上にあるやつですね。

Monorateなんていうアマゾンの商品ランキングと価格推移を表示するサイトにも一番上にありますね。検索ボックス。

スポンサーリンク

エクセルVBAで検索ボックスから検索するソースだよ。

とりあえずソース。どーん!

ログイン編を読んでいただいた人は、ほぼほぼソース一緒やん!と思ったと思います。

ええ。ほぼほぼ一緒です。

要はformの中にテキストを入れてsubmitするというだけなので、ログインとほとんど一緒なのです。

10行目のURLと、18行目の検索ボックス、20行目のSubmitボタン この3行を書き換えるだけでいけるなー♪とわかったと思います。

エクセルVBAで検索ボックスから検索する方法

ここからの手順は以下のとおりです。

  • 開発者ツールを起動する
  • タグの要素を確認してみる
  • 検索ボックスに値を設定する
  • 検索ボタンを押す

開発者ツールを起動する

WEBページのタグを確認するために開発者ツールを起動します。
開発者ツールの詳しい起動方法はログイン編で画像つきで説明していますので、今回はあっさりと説明します。

IEの場合

IEで、スクレイピングしたいページ(検索ボックスがあるページ)を開き、「F12」ボタンを押します。
開発者ツールが開かれるので、左上の矢印のようなマークを押します。
その状態で、検索ボックスをクリックすると、そこに該当するHTMLドキュメントが青くなります。

Chromeの場合

Chromeで、スクレイピングしたいページ(検索ボックスがあるページ)を開き、「Ctrl」+「Shift」+「i」を押します。
右半分に開発者ツールが開かれるので、左上の矢印のようなマークを押します。
その状態で、、検索ボックスをクリックすると、そこに該当するHTMLドキュメントがグレイになります。

タグの要素を確認してみる

検索ボックスには、検索したいテキストを入力する欄と、『検索』や『GO』などと書いてある、ボタンがたいていありますよね。
それらのタグの要素を、上記で書いたにIEでもChromeでもどちらでもよいので開発者ツールを開き、確認します。

該当するHTMLドキュメントを右クリックし、「Copy」→「Copy outerHtml」をクリックします。

テキストエディタに貼り付けしてみると、

こうなっていました。
1行目にform全体のことが書かれていますねー。
3行目が検索ボックスのテキスト入力欄。4行目がボタンですね。

検索ボックスに値を設定する

テキスト入力欄です。idが設定されていますね!(id=”○○”という部分がある)
勝ったも同然です。

上に載せたサンプルコードにあるように、
htmlDoc.getElementById(“○○”).Value = “XX”
の○○の部分にidの値を入れます。XXは検索ボックスに入れる値(検索したい文字列)を入れます。

検索ボックスにはidがおそらく大体のサイトは設定されていると思いますが、入っていない場合は、他の方法があります。
ログイン編の入力欄に値を設定する を確認してみてください。
そこに載っているいづれかの方法で行けるはずです。

検索ボタンを押す

ログイン編のログインボタン押下のように、検索ボタンを直接クリックでもいいんですが、今回はformタグに注目してください。

1行目ですね。
formタグにもidが付いてるんですよ!id=”searchform”って!
その場合は、formごとどーんと送れます。

htmlDoc.getElementById(“○○”).submit
○○の部分にformのidを入れます。kiyocodeの場合はsearchformを入れる形です。

これでいけます。すごい簡単。

formタグにidが付いていなかった場合は、ログイン編のログインボタンを押す を確認してみてください。他の方法が載っています!

検索できた?

最初に載せたソースの10行目のURLと、18行目の検索ボックス、20行目のSubmitボタンをログインしたいページのそれに書き換えましたか?

それでは実行してみてください。

検索できましたか♪

まとめ

今回はエクセルVBAでのWEBスクレイピング 第三回目として検索の方法をお話ししました。

ただ、実際は、プログラムに直で検索したい文字列を打ち込むとかありえないと思います。笑

エクセル上に一覧化しているコードをバンバン検索していくとかそういう感じですよね。(AmazonのACINコードをエクセルのA列に一覧化しているので、B列にその最安値を書いていくとか)

ですので次回は、そんな感じの、エクセルの内容を、WEB上に表示する的なやつをやろうかなと思います。

こちらもどうぞ

【エクセルVBA】WEBスクレイピングは簡単だから自力でできるよ【IE操作】
【エクセルVBA】WEBスクレイピングでログインは簡単にできるよ【IE操作】
【エクセルVBA】WEBスクレイピングで検索は簡単にできるよ【IE操作】

この記事をシェアする

コメント

コメントはありません。

down コメントを残す




著者

kiyoko

kiyoko

UC歴16年のワーママkiyokoです。
3歳の男の子、0歳の女の子持ち。
システム開発会社を退職し、現在は在宅で稼ぐ道を模索中。
プロフィールの詳細とお問い合わせはこちらから→ [詳細]