こんにちは。
前回「某フリマサイトのWebスクレイピング」において「⑥画面遷移が…」のタイトルで、画面遷移に繋がるClickメソッド前後の動きが安定しないこと、Clickメソッドの前後で行う一連の作業を共通サブルーチン化したことを備忘録しました。
■ 動作環境
OS: Windows 8.1
Excel: 2013
Chrome: 86.0.4240.198
■ Clickソメッドの連投で操作を忠実にシュミレーション
なぜこのような問題が起きたかと言うと、例えば某フリマサイトで公開されている出品リストを取得、Excelの適当な位置へ一覧を書き込む仕組みを作った場合…
と言う風に、実際にサイトでクリックし画面を切り替えていく操作の流れをシミュレーションするようなソースを組んでいました。
サイトのトップページへ移動
メニューの「マイページ」をクリック
メニューの「出品一覧」をクリック
という具合です。
※これ以降も同様ですが、「m_」や「g_」で始まる英語大文字の変数名みたいな名称は、何れも私が別途定義している定数です。
そして、Clickメソッドを実行した際の動き(主に処理スピード)がサイトやページによって凸凹あり、画面遷移が不安定な処理になっていました。
■ 目的の頁へダイレクトにGetメソッド!
大した話ではないのですが、(例えば)前述のシーンであれば、最終的に到達したいのは、「出品一覧へ移動して出品情報を取得…」なので、最初から出品一覧ページへアクセスすれば良いのではないか?と思った次第です。^^
こんな風にですね!
前述の1~3の工程全てが「wd.Get g_URL_EXHIBITION_LIST」に取って変わりました。Clickメソッドによる画面遷移を実現する処理もなくなったため切り替えに時間がかかる、不安定…などの問題が一瞬で解決しました。
今となっては、なんでClick操作のシミュレーションをしていたのかなぁ…と謎ではありますが。^^
■ まとめ
いかがでしたでしょうか?
前回ズラズラ説明した内容は、一瞬で意味をなさなくなってしまいました(笑)
目的のサイト、ページへダイレクトにアクセスすることで、Webサイトオーナーから、「Webスクレイピング系のツールか?」と思われる可能性はあるのかもしれませんが、処理はシンプル/スマートになりました!
なお、本備忘録を活用した【メルカリ管理ツール】を以下サイトで提供しております。
ご興味ございましたらご覧ください。
次回以降も、苦労した点を備忘録しようと思います。
Bình luận