スポンサーリンク

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