2012年8月3日金曜日

amazon からFileMakerへ情報取得

FileMakerからInternet Explorerを操作してamazonから情報を取得。

テスト環境
OS:Win Xp, 7
FileMaker Pro 11

プラグイン:ScriptMakerMS

画像は、ScriptMakerMSiiil_GetDataToFieldでフィールドへ直接入力(ダウンロード)
※実行は、FileMaker Pro 11, 12ならiiil_GetDataToFieldはなしでもOK!




WebFormMaker4ie.fmxの開発をやめ、WEBスクレイピングは、ScriptMakerMS+VBScriptでやっていましたが、JScriptに切りかえてさらにカスタム関数をりようしてさらに使いやすく?なった?かな?

カスタム関数
詳しい説明は、ScriptMakerMS|Webスクレイピング に書いていく予定。

ClickById ( id )
ClickByName ( name ; index )
ClickByTagName ( name ; index )
ClickLinkByInnerText ( keyword )
fmQuery ( Script )
GetByClassName ( className ; index ; element )
GetById ( id ; element )
GetByName ( name ; index ; element )
GetByTagName ( name ; index ; element )
JS_Esc ( Text )
Navigate_CreateObject ( url )
Set_ie
SetCheckedById ( id ; boolean )
SetCheckedByName ( name ; index ; boolean )
SetinnerTextById ( id ; value )
SetinnerTextByName ( name ; index ; value )
SetSelectedById ( id ; OptionIndex ; boolean )
SetSelectedByName ( name ; index ; OptionIndex ; boolean )
SetTarget ( element )
SetTargetByClassName ( className ; index )
Wait4ie

WebFormMaker4ie.fmxっぽく使えるかな?JScript(JabaScript)ベースなので機能が足りなければ、JScript(JabaScript)で記述して補える!

例えば、
GetById ( id ; element )
の中身は、
iiil_Eval( "
 if ( Target ) { 
     }else{
      Target=ie.document;
     }
    Target.getElementById( '" & id & "' )." & element & ";
")
このようになっているので、

<div id="hoge"> <img alt="" height="135" src="http://x.jpg" width="101" /> インナーテキスト </div>

GetById (  "hoge"  ; "innerText" ) 結果:インナーテキスト
GetById (  "hoge"  ; "firstChild.src" ) 結果:http://x.jpg
以下でも同じ
GetById (  "hoge"  ; "getElementsByTagName('img')[0].src" ) 結果:http://x.jpg

必要なら「iiil_Exe」「iiil_Eval」にJavaScriptを書けるので自由度が高い!

iiil_Exe( "ie.document.getElementsByTagName('a')[0].click()")
iiil_Eval( "ie.document.getElementsByTagName('img')[0].src ")


FileMaker + ScriptMakerMS + JScript(JabaScript) + カスタム関数で
Webスクレイピングがより楽ちん!になりそう!

0 件のコメント:

コメントを投稿