window
 
トップページ > 記事閲覧
このエントリーをはてなブックマークに追加
* 動的ソースからie_GetByClassName するには?

日時: 2014/07/16(水) 10:10:03 < ID:fX9fdBRi5. >メンテ
名前: こんたろう

ScriptMakerMSには、大変お世話になっております。
素晴らしいプラグインをありがとうございます。

環境はFM13AVです。

動的WEBページより値を取得したいと思っております。

目的URLをIEで開いた後、
カスタム関数の

ie_DoJavaScript ( "document.body.innerHTML='<plaintext>'+document.all.tags('HTML')[0].outerHTML" )

にて、動的に生成されたソースをScriptMakerMSをつかい、IEに表示できました。
このあと、
ie_GetByClassName(カスタム関数)にて、値を取得しようとしたのですが取得できません。

生成前のソースを読み込んでいるようです。

生成後のソースの読み込み又は、
IEに表示できたソースを丸ごとコピーする方法はありますでしょうか?


 
Page: [1]
* Re: 動的ソースからie_GetByClassName するには? ( No.1 )
日時: 2014/07/16(水) 12:33:53 < ID:G3T2JwLGq0 >メンテ
名前: admin

>ie_DoJavaScript ( "document.body.innerHTML='<plaintext>'+document.all.tags('HTML')[0].outerHTML" )
これを実行すると、HTMLがプレインテキストになり、DOM(Document Object Model)が利用出来なくなります。
DOMが利用できないとHTMLの各要素にアクセスすることができません。


以下の様なソースの場合、

<span class="price">¥ 570</span>


下記、スクリプトで情報が取得出来ます。

FileMakerスクリプト サンプル
#URLを開く
変数を設定 [$er; 値:ie_Navigate_Create ( "http://**********/" ;"true")]
#読み込み完了を待つ
変数を設定 [$er; 値:ie_Wait4ie]
フィールド設定 [amazon::価格; ie_GetByClassName ( "price" ; 0 ; "innerText" )]
* Re: 動的ソースからie_GetByClassName するには? ( No.2 )
日時: 2014/07/18(金) 02:46:02 < ID:v.DFBF2Ia0 >メンテ
名前: 名無しさん

返信ありがとうございます。

動的に生成されたページからの、ie_GetByClassNameでの取り込みは、知識不足にて断念しました。

生成されたソースをプレインテキストで吐き出し
ie_DoJavaScript ( "clipboardData.setData('TEXT',document.all.outerHTML)" )

にて、クリップボード経由して仮フールドに貼り付け、、プレインテキストをファイルメーカー側で加工して、各値をフールドに貼り付けることにしました。

* Re: 動的ソースからie_GetByClassName するには? ( No.3 )
日時: 2014/07/18(金) 13:10:02 < ID:LTbzX9BHq/ >メンテ
名前: こんたろう

ごめんなさい。

ie_DoJavaScript ( "clipboardData.setData('TEXT',document.body.outerHTML)" )

でした。
* Re: 動的ソースからie_GetByClassName するには? ( No.4 )
日時: 2014/07/18(金) 23:13:41 < ID:yXkPaJxuE. >メンテ
名前: admin

クリップボードを経由しなくても
ie_GetByTagName ( "html" ; 0 ; "outerHTML" )
とか、
iiil_Eval( "ie.document.body.outerHTML" )
でソースの取得は可能です。


>動的WEBページより値を取得したいと思っております。
ajaxのページ遷移なしのWEBサイトからのデータの取得と言うことなら、以下サンプルの「Google翻訳」のスクリプトが参考になると思います。
https://sites.google.com/site/scriptmakerms/scriptmakerms/web-scraping/custom-function


以下の処理は、何のために必要なのでしょうか?
自ページのbodyを自ページのouterHTMLにテキストとして書き換える?
>ie_DoJavaScript ( "document.body.innerHTML='<plaintext>'+document.all.tags('HTML')[0].outerHTML" )

「'<plaintext>'+」を外せば、DOMは利用可能ですが、
>ie_DoJavaScript ( "document.body.innerHTML='<plaintext>'+document.all.tags('HTML')[0].outerHTML" )
この処理の意味は、ないんですよね〜。
若干気になります。
* Re: 動的ソースからie_GetByClassName するには? ( No.5 )
日時: 2014/07/21(月) 08:32:56 < ID:3brm1ddYE/ >メンテ
名前: こんたろう

ありがとうございます!
ie_GetByTagName ( "html" ; 0 ; "outerHTML" )でちゃんとソースの取得できました。


通常表示されない動的ソースの表示に使われる<plaintext>に何か不思議なパワーがあるのかと思っておりました・・

ie_GetByClassName ( className ; index ; element )
エレメントの設定が間違っていました。

お手数をおかけして、申し訳ございません。

>以下の処理は、何のために必要なのでしょうか?
自ページのbodyを自ページのouterHTMLにテキストとして書き換える?
Page: [1]
 
BBコード
テキストエリアで適用範囲をドラッグし以下のボタンを押します。
装飾と整形

フォント
この文字はフォントのサンプルです
リスト
標準  番号付  題名付

スマイリー
表とグラフ
データ入力
ファイルから入力(txt/csv)
要素の方向:
横軸の数値:
横軸の値 例:2009,2010,2011,2012
直接入力
凡例
カンマ区切り数値 例:1,2,3
横軸の値 例:2009,2010,2011,2012
オプション
出力内容
グラフタイプ
区切り文字
縦軸の単位例:円
横軸の単位例:年度
マーカーサイズ
表示サイズ
確認と適用
Status表示エリア
プレビュー
絵文字
連続入力
外部画像
  • 画像URLを入力し確認ボタンをクリックします。
  • URL末尾は jpg/gif/png のいずれかです。
確認ボタンを押すとここに表示されます。
Googleマップの埋め込み

  • 説明
  • 説明
確認ボタンを押すとここに表示されます。
HELP
題名 スレッドをトップへソート
名前
URL
添付FILE 文章合計600Kbyteまで
パスワード (記事メンテ時に使用)
コメント

※必須
画像認証
     (画像の数字を入力)

   クッキー保存