UWSCで,CSVファイルの行・列を読み込んで処理するサンプルコード
Windows上の処理を自動化するフリーソフト「UWSC」で,
CSVファイルの各行に書かれた情報を読み込み,
その情報に基づいて処理を行なってみよう。
ここでは,「IEで特定のURLにアクセスし,特定の座標をクリック」という処理を繰り返す。
具体的な内容は,CSVファイルに設定値として格納しておく事にしよう。
まず,url_data.csv として,下記のようなサンプルのCSVファイルを準備。
https://www.google.co.jp/webhp?hl=ja,672,502 http://www.yahoo.co.jp/,792,280 http://www.hatena.ne.jp/,485,153
URL,X座標,Y座標
という書式で書いてある。
そして,同じフォルダ上でUWSCのコードを書く。
下記のコード中で「設定事項」の部分は適宜書き換えてから,
適当な名前(hoge.uwsとか)で保存し,uwsc.exeにドロップするだけ。
そうすれば,CSVの記載事項に従って処理が開始する。
動作確認済み。
hoge.uws
// // CSVから読み込んだ情報をもとに,マウス操作を自動化するUWSCのサンプルコード // // -------------------- 設定事項 -------------------- // アクセスするサイトの総数 site_num = 3 // クリック後に何秒待つか wait_after_click_sec = 5 // 使い方: // CSVファイルの各行には, // URLと,画面左上からのX座標と,画面左上からのY座標が // カンマ区切りで記述されていること。 // -------------------- メイン処理 -------------------- // CSVをオープン fid = FOPEN("url_data.csv", F_READ) // CSVの各行をスキャンして処理を実行 FOR i = 1 TO site_num // CSVの各列の情報を読み取り url = FGET( fid, i, 1 ) page_x = FGET( fid, i, 2 ) page_y = FGET( fid, i, 3 ) // IEを起動してページを開く ie = new_ie() show_ie( ie ) ie_jump( ie, url ) sleep( 3 ) // 画面上で特定の座標をクリック btn( LEFT, DOWN, page_x, page_y ) sleep( 1 ) btn( LEFT, UP, page_x, page_y ) // 指定された秒数だけ待つ sleep( wait_after_click_sec ) // IEを終了 ie.Quit() sleep( 3 ) NEXT // CSVを閉じる FCLOSE( fid ) MSGBOX( "終了しました。" ) // -------------------- 以下は補助関数 -------------------- // -------------------- IEの制御 -------------------- // IEManipulation.uws (IEを自動操作するライブラリ) より抜粋。 // http://language-and-engineering.hatenablog.jp/entry/20090729/p1 // http://language-and-engineering.hatenablog.jp/entry/20090826/p1 // 新規IEオブジェクトを作成して返す function new_ie() result = createOLEobj("InternetExplorer.Application") fend // 起動中のIEを見えるように procedure show_ie( ie ) ie.visible = True // 位置調整 wid = hndtoid( ie.hwnd ) acw( wid, 0, 0 ) // 最大化 ctrlwin( wid, MAX ) ie_pause( ie ) fend // IEがビジー状態の間待ちます procedure ie_wait( ie ) repeat sleep( 0.1 ) until ( ! ie.busy ) and ( ie.readystate = 4 ) ie_pause( ie ) fend // URLにジャンプ procedure ie_jump( ie, url ) ie.navigate( url ) ie_wait( ie ) fend // ポーズ procedure ie_pause( ie ) sleep( 0.2 ) fend
ところで,マウスを自動操作する際には,クリックする座標を調査する必要がある。
画面上でのマウスポインタの座標情報は,かんたんに取得できる。
下記のページを参考にして,「MPP Utility」というフリーソフトを使えばよい。
画面上のマウスポインタの位置座標を簡単に取得する方法
http://computer-technology.hateblo.jp/entry/20131116/p1
これで,クリックしたい場所の座標が分かる。
これを使いながらCSVファイルの内容を微調整してゆき,全体の処理をうまく自動化できるだろう。
なお,Webサイトによっては,自動化によるアクセスを禁止している場合があるので,くれぐれも注意すること。
参考:
パーソナルなマニア: 第37回 アドレス帳の生成(元データの読み込み)
http://shuho.blogzine.jp/personal/200...
UWSCで,IEを自動操作するためのライブラリ (ファイルアップロードも自動化できる)
http://language-and-engineering.hatenablog.jp/entry/20090729/p1
ブラウザ上で,マウスのドラッグ&ドロップも自動化できるスクリプト(UWSCでIEを自動操作するライブラリ 1.2)
http://language-and-engineering.hatenablog.jp/entry/20090826/p1
UWSCのダウンロード
http://www.uwsc.info/download.html
補足
この記事は,下記の質問への回答として執筆させて頂きました。
【UWSC】自動でウェブブラウザを立ち上げて特定サイトにアクセス..
http://q.hatena.ne.jp/1384597685
関連する記事:
Excel VBAのマクロで,IEを自動操作しよう (DOMセレクタ関数をVBAで自作)
http://language-and-engineering.hatenablog.jp/entry/20090710/p1
IE AutoTester で,UIの回帰テストを完全自動化
http://language-and-engineering.hatenablog.jp/entry/20090922/p1
"Excelenium"(エクセレニウム)で,快適な自動回帰テストを (Seleniumのテストスクリプトとテスト仕様書を自動生成)
http://language-and-engineering.hatenablog.jp/entry/20090524/p1
JScript / VBScript (WSH)で,IEを自動操作しよう
http://language-and-engineering.hatenablog.jp/entry/20090713/p1
Badboyの使い方 (Webサイトの自動巡回ツール)
http://language-and-engineering.hatenablog.jp/entry/20081018/1224254143