UWSCでの質問です。


ソースファイルの中に「←現在"0"と表示されている取引損益のデーターを取得したい。」の様に質問を2箇所書き入れてあります。
そのデーターを取得するコードを教えて下さい。

なお、ソースファイルが長いのでコメント欄に書きます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/12/27 08:54:58
  • 終了:2013/12/27 15:21:39

ベストアンサー

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632013/12/27 12:10:41

ポイント1000pt

こんにちは。
例のごとく,下記のコードで実際に動作しますので,動かしてみてください。



// 対象Webページの構造の要点:
// ・tableが4つある。上から順に,基準通貨,トランザクション,ポジション,期初期末情報。
// ・1つ目から3つ目までのtable内には,入れ子のtable要素は存在しない。
// ・4つ目の期初期末情報のtableは,横に3セルあって,左端と右端のセル内には入れ子でtableがある。
// ・その入れ子になった2つのtableのそれぞれの中から,情報を取得したい。


// アクセスしたいページのURL
url = "http://name-of-this-site.org/coding/dummy/1388102098q/"

// このURLの中で,操作したいHTMLソースとは別に,
// サーバが勝手に広告とかを表示するのでtableタグの個数が変わってしまう場合がある。
// その場合のために,サーバが勝手に表示する広告のtableをスキップして考えるために,オフセットを設ける。
// アクセスするページの状況によって,適宜この値を書き変えること。
table_count_offset = 0


// 新規IEオブジェクトを作成
ie = createOLEobj("InternetExplorer.Application")

// 起動中のIEを見えるように
ie.visible = True
wid = hndtoid( ie.hwnd )
acw( wid )


// 対象ページを開く
ie.navigate( url )
ie_wait( ie )



// まず,期初期末情報のテーブルを取得
tables = ie.document.getElementsByTagName("table")
ireko_table_left = tables.item( table_count_offset + 4 ) // 5つ目
	//msgbox( ireko_table_left.innerHTML )

// 42列目の取引損益情報を抽出
target_tr = ireko_table_left.getElementsByTagName("tr").item( 3 )
	//msgbox( target_tr.innerHTML )
target_td = target_tr.getElementsByTagName("td").item( 1 )
soneki = target_td.innerText

	msgbox( "取引損益は" + soneki )


// 右側の入れ子tableを取得
ireko_table_right = tables.item( table_count_offset + 5 ) // 6つ目

// 22列目の期末預金情報を抽出
target_tr = ireko_table_right.getElementsByTagName("tr").item( 1 )
target_td = target_tr.getElementsByTagName("td").item( 1 )
kimatsy_yokin = target_td.innerText

	msgbox( "期末預金は" + kimatsy_yokin )





// IEがビジー状態の間待ちます
procedure ie_wait( ie )
  repeat
    sleep( 0.1 )
  until ( ! ie.busy ) and ( ie.readystate = 4 )
  sleep( 0.1 )
fend


// コード全体の参考:
// http://d.hatena.ne.jp/language_and_engineering/20090729/p1
// および http://q.hatena.ne.jp/1387280635

他2件のコメントを見る
id:iwana1999

実は、お願いしていたページは業者が作ったEXEファイルを開く形式になっておりまして、インターネットブラウザを使用しておりません。

従って、ダミーのURLをどのように変えて良いのかわからない状態なのですがデーターを取得したいページに入るにはIDとパスワードが必要でのですので公開する事が出来ません。

そこで、メールで必要情報をお送りしたいのですが、ご教示頂けますでしょうか?
恐れ入りますが、宜しくお願い致します。

2013/12/27 13:28:46
id:iwana1999

お忙し中、ご丁寧に指摘及び度指導を頂きまして有り難うございます。
餅は餅屋と言いますがプロの方とは考え方が月とスッポンほど違うなあと改めて感じ入っている次第です。

一通り読ませて頂きました上でのお願いです。

1.別質問のデーター取得の件は、質問が締めきりになりましたらポイント送信という形で継続してお願いさせて頂きたいと思いますので、宜しくお願い致します。

2.今回のソースがブラウザ経由でない事は分かっていたのですが、余り重要に考えておりませんでした。
次回から,前提条件として書きますので宜しくお願い致します。

3.確かにリアル取引画面に入ることは、受けて頂く方も負担になると思いますのでデモ口座を開きます。
当該ページはリアルとデモ口座は同じシステムを切り替えて使って降りますのでデモ口座でも同じ内容と思います。
参考にデモ口座のソースファイルを貼り付けます。

それではお手数をお掛け致しますが宜しくお願い致します。
----------------------------------------------------
nowrap>                    

期間:日次

顧客氏名:Test System 開始日時:12/26/2013 00:00:00

顧客住所: ,  終了日時:12/27/2013 00:54:59

Trader's Login:demo7694

基準通貨:\ (JPY: Japanese Yen)


取引明細 (詳細)
クローズ日時 種別 Trade IDTrade Size番号通貨ペア ロット 売買 オープン日時 建値Open
Notional
value
仕切値 Close
Notional
value
入出金額 G\損益手数料金利N\損益OM
Pts/\
CM
Pts/\
預金残高使用証拠金User備考
12/27/13,
00:36:56
DP200,000200,000200,0000SystemREGISTRATION

取引損益計00000000

期間中損益総計00000000



現在保有のポジション
Trade ID番号Instr. Type通貨ペア ロット 売買 建値Open
Notional
value
オープン日時 OM仕切値 Close
Notional
value
G\損益手数料金利N\損益User備考
Pts\
Global totals000000000

                          
期初預金:0

期初残高:0

取引損益:0

手数料:0

金利:0

入金:200,000

出金:0

アジャストメント:0

Net D/W/A:200,000

 
                          
期末預金:200,000

含み損益:0

期末残高:

200,000


使用証拠金:0

余剰証拠金:200,000

MC Deposit Required:0

2013/12/27 15:19:39

その他の回答(0件)

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632013/12/27 12:10:41ここでベストアンサー

ポイント1000pt

こんにちは。
例のごとく,下記のコードで実際に動作しますので,動かしてみてください。



// 対象Webページの構造の要点:
// ・tableが4つある。上から順に,基準通貨,トランザクション,ポジション,期初期末情報。
// ・1つ目から3つ目までのtable内には,入れ子のtable要素は存在しない。
// ・4つ目の期初期末情報のtableは,横に3セルあって,左端と右端のセル内には入れ子でtableがある。
// ・その入れ子になった2つのtableのそれぞれの中から,情報を取得したい。


// アクセスしたいページのURL
url = "http://name-of-this-site.org/coding/dummy/1388102098q/"

// このURLの中で,操作したいHTMLソースとは別に,
// サーバが勝手に広告とかを表示するのでtableタグの個数が変わってしまう場合がある。
// その場合のために,サーバが勝手に表示する広告のtableをスキップして考えるために,オフセットを設ける。
// アクセスするページの状況によって,適宜この値を書き変えること。
table_count_offset = 0


// 新規IEオブジェクトを作成
ie = createOLEobj("InternetExplorer.Application")

// 起動中のIEを見えるように
ie.visible = True
wid = hndtoid( ie.hwnd )
acw( wid )


// 対象ページを開く
ie.navigate( url )
ie_wait( ie )



// まず,期初期末情報のテーブルを取得
tables = ie.document.getElementsByTagName("table")
ireko_table_left = tables.item( table_count_offset + 4 ) // 5つ目
	//msgbox( ireko_table_left.innerHTML )

// 42列目の取引損益情報を抽出
target_tr = ireko_table_left.getElementsByTagName("tr").item( 3 )
	//msgbox( target_tr.innerHTML )
target_td = target_tr.getElementsByTagName("td").item( 1 )
soneki = target_td.innerText

	msgbox( "取引損益は" + soneki )


// 右側の入れ子tableを取得
ireko_table_right = tables.item( table_count_offset + 5 ) // 6つ目

// 22列目の期末預金情報を抽出
target_tr = ireko_table_right.getElementsByTagName("tr").item( 1 )
target_td = target_tr.getElementsByTagName("td").item( 1 )
kimatsy_yokin = target_td.innerText

	msgbox( "期末預金は" + kimatsy_yokin )





// IEがビジー状態の間待ちます
procedure ie_wait( ie )
  repeat
    sleep( 0.1 )
  until ( ! ie.busy ) and ( ie.readystate = 4 )
  sleep( 0.1 )
fend


// コード全体の参考:
// http://d.hatena.ne.jp/language_and_engineering/20090729/p1
// および http://q.hatena.ne.jp/1387280635

他2件のコメントを見る
id:iwana1999

実は、お願いしていたページは業者が作ったEXEファイルを開く形式になっておりまして、インターネットブラウザを使用しておりません。

従って、ダミーのURLをどのように変えて良いのかわからない状態なのですがデーターを取得したいページに入るにはIDとパスワードが必要でのですので公開する事が出来ません。

そこで、メールで必要情報をお送りしたいのですが、ご教示頂けますでしょうか?
恐れ入りますが、宜しくお願い致します。

2013/12/27 13:28:46
id:iwana1999

お忙し中、ご丁寧に指摘及び度指導を頂きまして有り難うございます。
餅は餅屋と言いますがプロの方とは考え方が月とスッポンほど違うなあと改めて感じ入っている次第です。

一通り読ませて頂きました上でのお願いです。

1.別質問のデーター取得の件は、質問が締めきりになりましたらポイント送信という形で継続してお願いさせて頂きたいと思いますので、宜しくお願い致します。

2.今回のソースがブラウザ経由でない事は分かっていたのですが、余り重要に考えておりませんでした。
次回から,前提条件として書きますので宜しくお願い致します。

3.確かにリアル取引画面に入ることは、受けて頂く方も負担になると思いますのでデモ口座を開きます。
当該ページはリアルとデモ口座は同じシステムを切り替えて使って降りますのでデモ口座でも同じ内容と思います。
参考にデモ口座のソースファイルを貼り付けます。

それではお手数をお掛け致しますが宜しくお願い致します。
----------------------------------------------------
nowrap>                    

期間:日次

顧客氏名:Test System 開始日時:12/26/2013 00:00:00

顧客住所: ,  終了日時:12/27/2013 00:54:59

Trader's Login:demo7694

基準通貨:\ (JPY: Japanese Yen)


取引明細 (詳細)
クローズ日時 種別 Trade IDTrade Size番号通貨ペア ロット 売買 オープン日時 建値Open
Notional
value
仕切値 Close
Notional
value
入出金額 G\損益手数料金利N\損益OM
Pts/\
CM
Pts/\
預金残高使用証拠金User備考
12/27/13,
00:36:56
DP200,000200,000200,0000SystemREGISTRATION

取引損益計00000000

期間中損益総計00000000



現在保有のポジション
Trade ID番号Instr. Type通貨ペア ロット 売買 建値Open
Notional
value
オープン日時 OM仕切値 Close
Notional
value
G\損益手数料金利N\損益User備考
Pts\
Global totals000000000

                          
期初預金:0

期初残高:0

取引損益:0

手数料:0

金利:0

入金:200,000

出金:0

アジャストメント:0

Net D/W/A:200,000

 
                          
期末預金:200,000

含み損益:0

期末残高:

200,000


使用証拠金:0

余剰証拠金:200,000

MC Deposit Required:0

2013/12/27 15:19:39
id:iwana1999

このコメントは削除しました。

  • id:iwana1999
    lang_and_engine様

    お世話になります。
    了解しました。
    両コメントは早速削除致します。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません