FileMakerからInternet Explorerを操作してamazonから情報を取得。
テスト環境
OS:Win Xp, 7
WebFormMaker4ie.fmxの開発をやめ、WEBスクレイピングは、
ScriptMakerMS+VBScriptでやっていましたが、JScriptに切りかえてさらにカスタム関数をりようしてさらに使いやすく?なった?かな?
カスタム関数
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 ")
Webスクレイピングがより楽ちん!になりそう!