PGtwitterfacebookhatenabookmarklineこんにちは!kiyokoです。前回WEBスクレイピング第一回として下記の記事を書きました。pockets【エクセルVBA】WEBスクレイピングは簡単だから自力でできるよ【IE操作】https://kiyocode.com/pg/vba-scraping1/こんにちはkiyokoです。クラウドワークスやランサーズといった、クラウドソーシングサイトが最近盛り上がっていますね。(いろんな意味で)在宅ワーカーとクライアントがオンライン上でつながることができるなんて、すごーく画期的な仕組みですね。1に当てはまる人は【エクセルVBA】WEBスクレイピングは簡単だから自力でできるよ【IE操作】もご覧になってくださいね。最近流行りのクラウドワークス・ランサーズなどのクラウドソーシングサイトで、WEBスクレイピングの仕事依頼が多数あります。その依頼事項の多くは、情報取得先へページ遷移するためにログイン処理が必要です。今回は第二回として、ログインは簡単にできるよということを書こうと思います。スポンサーリンクエクセルVBAでWEBページにログインするソースだよとりあえずソースです。この4行を書き換えるだけでいけるなー♪とわかったと思います。スポンサーリンクエクセルVBAでWEBページにログインする方法ログインページって大体どんな感じか決まってますよね。ログインIDとパスワード入れて、ログインボタン押す。その程度しかないシンプルな画面が多いです。ログインするためには、ログインID入力欄のタグ(タグの意味がわからなくてもふーん。思って流してください。)とパスワード入力欄のタグ、そしてログインボタンがどんな感じか!それがわかるだけでログインできちゃいます。開発者ツールを起動するWEBページのタグやログインボタンがどんな感じか確認するために、開発者ツールを使用します。(インストール不要だし、もちろん無料です。)IEの場合IEで、スクレイピングしたいページ(今回の場合ログイン画面)を開き、「F12」ボタンを押します。開発者ツールが開かれるので、赤丸で囲っている矢印のようなマークを押します。その状態で、UserIDの入力欄をクリックすると、そこに該当するHTMLドキュメントが青くなります。(赤四角で囲っている部分)Chromeの場合Chromeで、スクレイピングしたいページ(今回の場合ログイン画面)を開き、「Ctrl」+「Shift」+「i」を押します。右半分に開発者ツールが開かれるので、赤丸で囲っている矢印のようなマークを押します。その状態で、UserIDの入力欄をクリックすると、そこに該当するHTMLドキュメントがグレイになります。(赤四角で囲っている部分)タグの要素を確認してみるこのページの場合、ログインするときに必要なことは、UserID、Passwordを入力し、Loginボタンを押すことですよね。UserID、Password、Loginボタンのタグの要素を確認する必要があります。上で説明したようにIEでもChromeでもどちらでもよいので開発者ツールを開き、必要なタグの要素を確認します。outerHtml」をクリックします。value="login">こんな感じになります。一行目はUserIDの部分。二行目はPasswordの部分。三行目はLoginボタンの部分ですねー。入力欄に値を設定するログイン画面の入力欄はUserIDとPasswordですね。先ほど確認したタグの要素に、idが設定されている場合(id=”○○”という部分がある場合)は、勝ったも同然です。idはドキュメントに一つしかないので、バシッと特定できます。“XX”の○○の部分にidの値を入れます。XXは入力欄に入れる値ですねー。idが設定されていないがnameが設定されている場合(name=”○○”という部分がある場合)はこうです。“XX”(0)としているのは、nameが同じものがドキュメント内に存在する場合があるので、その何番目のnameなんですよーということを指定してあげないといけないからです。ログイン画面なんて大抵フォームは一つしかない画面ばっかりなので、0で大体の画面は大丈夫だと思います。idもnameも設定されていない場合はタグがあります。タグというのは<>で囲まれている一番最初に書かれてる部分です。それでいいです!この場合inputですね。“XX”今回はinputタグがドキュメント内に3つあるので、この場合、(0)がUserIDで、(1)がPasswordになりますねー。最初に載せたソースの19行目のUserID、20行目のPasswordを書き換えてみてくださいね♪ログインボタンを押すログインボタンも同じように、idが設定されている場合は勝ったも同然です。htmlDoc.getElementById(“○○”).Clickの○○の部分にidの値を入れます。idが設定されていないがnameが設定されている場合はこうです。htmlDoc.getElementsByName(“○○”)(0).Click(0)の意味とかは入力欄のそれと同じですね。○○の中にnameを入れます。idもnameも設定されていない場合はタグがあります。今回の例の場合inputタグになりますが、入力欄で、要素について(0)がUserIDで、(1)がPasswordになると説明しましたね。htmlDoc.getElementsByTagName(“input”)(2).Clickになります。始まるタグ内に書かれていることがわかります。htmlDoc.forms(0).submit0番目のformをsubmitしてしまえ。私もよくわかりませんが、こんなのでも動きます。)htmlDoc.all.submit.Clickはい。5パターン紹介しました。最初に載せたソースの22行目のSubmitボタンを書き換えてみてくださいね♪ログインできた?最初に載せたソースの10行目のURLと、19行目のUserID、20行目のPassword、22行目のSubmitボタンをログインしたいページのそれに書き換えましたか?それでは実行してみてください。第二回目としてログインの方法をお話ししました。マクロを動かしたことがない人でも、コピー&ペーストで、ログインするマクロが組めちゃったと思います。【エクセルVBA】WEBスクレイピングで検索は簡単にできるよ【IE操作】スポンサーリンクスポンサーリンクこの記事をシェアするtwitterfacebookhatenabookmarklineコメントスクレイピングの連載、スクリプト行に親切なコメントが入っていてとても分かりやすいです。雑誌の連載では説明が無さすぎて意味が全然わかりませんでした(だから自分の環境に合うように編集できない)。4月で連載が止まっていて残念ですが、再開の元気の素になればとサイゼで一回ご飯が食べれる程度のカンパをしたいと思っています。アマゾンをよくご利用になるのであればアマギフにしたいのですが。AMごまだんごさんコメントありがとうございます!返信が遅くなってしまい申し訳ありません。わかりやすいと言っていただいてとてもうれしいです。記事を作成するのに労力がいるわりに、需要があるように感じずやる気を失っていたのですが、見てくださる方がいるということで、また再開しようと思います。(1月はちょっと忙しいので、2月以降になってしまうかとは思います。)コメントだけでもとっても嬉しかったのですが、カンパも、もしお気持ちが変わらないようであればメールのほうに宜しくお願い致します。(kiyoko@kiyocode.com)励みになります!「こういう記事を作成してほしい!」などの要望があれば、またコメントを頂けると嬉しいです。スローテンポにはなりますが更新は続けていこうと思っているので、たまに思い出したときにでも、また立ち寄って頂けたらと思います。PMスクレイピングにとっても役に立ちました。IEのF12キーを知って感動しました。今まで、ソースの表示をして目で探していましたから。エレメントの後ろの(0)とかの意味を始めて知りました。他のサイトで得た知識を統合化できてよかったです。わかりやすい説明でした。PMさいらさんコメントありがとうございます!とっても役に立ちましたとのこと、こちらこそ、とっっっても嬉しいです!ありがとうございます。スクレイピング記事について、続編を期待していただきとてもありがたいです。最近こどもを産んだりして忙しかったのですが、そろそろまた再開しようと思います!おまたせしてしまうかもしれませんが、また、気が向いたときに立ち寄ってくださいね。PMkiyokoさますごい!感動感動です。VBAを始めたのは仕事を効率化するのが目的で、ほんの2か月ほどの初心者です。それでもってスクレイピングもできればいいなと思い、いろいろな本を買っては読んでみたのですが、やはり中級者?向けに書かれているものばかりで、手も足も出ない状況でした。見よう見まねでやってみたところ、すごいです!自分みたいなのでもできました!(私は官公庁関係のサイトでした。AMハギハラさんコメントありがとうございます!お仕事の効率化のために、少しでもお役に立てましたでしょうか?初心者の方でもほんの少し書き換えるだけで簡単にスクレイピングができるようにと考えて記事を作成したので、ハギハラさんの、できました!とのコメントとっても嬉しいです。ありがとうございます。コメント頂いただけでも充分とてもとても嬉しいのですが、カンパ頂けるのであればありがたいです!励みになります!kiyoko@kiyocode.comによろしくお願いします。近日中に新しい記事を書こうと思ってますので、また思い出した時にでも立ち寄ってくださいね。AMkiyokoさまお世話になっております。メールさせていただきましたので、よろしくお願いいたします。PMhttps://kiyocode.com/pg/vba-scraping2Kiyoko様、初めまして。ログインするサイトをExcelでスクレイピングする方法について探していた時にこのページを見つけました。私は皆様のようにはうまくいかずエラーが出てしまったので、質問をさせて頂きたいと思い、失礼ながら書かせていただきました。以下のように、ログインするページにはID指定がなくNameがありましたので、その部分を変更しています。defined」とエラーが表示されてしまいます。Userを指定する部分が指定されていない、と言っているようなのですが。返信が大変遅くなって申し訳ありません。(子供が入院していてバタバタしていました。Controls」を参照設定すれば動くと思います。参照設定の方法は、【エクセルVBA】WEBスクレイピングは簡単だから自力でできるよ【IE操作】の「WEBスクレイピングのためのライブラリを追加する」を参考にしてくださいね。VBAでの開発はよくするんですがスクレイピングがVBAで出来ることをこちらで初めて知り、参考にさせていただきました!というか、こちらで全て学んでおります!!とってもわかりやすい解説でありがたいです。AMしおり様はじめまして。返信が大変遅くなり申し訳ありません。わかりやすい解説とのこと、うれしいお言葉ありがとうございます!今後ともよろしくお願いします。Expressを使ってのPC画面録画方法!2017/4/3WordPressのテーマをマテリアルからマテリアル2に変更したよ。2016/12/6WordPressのサイトマップをプラグインなしで作ってみた。PG著者kiyokoUC歴16年のワーママkiyokoです。3歳の男の子、0歳の女の子持ち。システム開発会社を退職し、現在は在宅で稼ぐ道を模索中。具体的に考察してみた。KiyoCodeMENUホーム育児お小遣い稼ぎ買ったよPG潰瘍性大腸炎サイトマップ著者kiyokoUC歴16年のワーママkiyokoです。3歳の男の子、0歳の女の子持ち。システム開発会社を退職し、現在は在宅で稼ぐ道を模索中。navigationarrowuphome。