人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

IEオブジェクトに関する質問です。

ダウ平均株価の取引値、高値、安値
の各数値を取ってくるプログラムを教えてください。
windows上のデスクトップで機能するものでお願いします。
使ってもらいたい言語はC# WSH Ruby VB C C++ その他 の順です。

●質問者: niwatorisan
●カテゴリ:コンピュータ 経済・金融・保険
✍キーワード:C# C++ IE Ruby VB
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● tailliar
●15ポイント

http://www.hatena.ne.jp/awindow?qid=1120421331

URLはダミーです。

.NET(C#)を例にして説明します。

コーディング部分は記憶に頼るので、VSでそのへんを適当に探ってやってください。

・ダウ平均株価取引値、高値、安値があるwebサイトを探す

http://www.asahi.com/business/stock.html

このへんでしょうか。

・こいつをゲットしてくるコードを書く

System.Net.WebClientを使う

webClient.OpenRead(”url”);だったと思う

Streamが帰ってくるので

System.IO.StreamReaderを使う

文字列形式で取得して、あとはstring.IndexOfで対象の数値を取得して整形してやる


大体以上です。

◎質問者からの返答

終値が書いてあるところのタグは

td width=”25%” align=”right”>10303.44

</td>

で、

string seek = ”td width=”25%” align=”right”>”;

int index = text.IndexOf( seek );

textBox2.Text = text.Substring( index+1 );

でやろうと思いましたが、 『 ” 』

がたぶん原因で、エラーになります

他に10303.44を取ってくるやり方はないのでしょうか?


2 ● akibare
●15ポイント

http://www.devarticles.com/c/a/C-Sharp/Build-a-C-sharp-Stock-Quo...

Page 3 - Build a C# Stock Quote WebService Part 1/2

ここに詳しいC#コードが書いてあります。quote.yahoo.comからデータを取得する方法ですが、DOWのデータはhttp://finance.yahoo.com/d/quotes.csv?s=%5EDJI&f=sl1d1t1c1oh...から取得できるので、GETしたストリームをカンマでparseすれば簡単です。

◎質問者からの返答

http://finance.yahoo.com/d/quotes.csv?s=%5EDJI&f=sl1d1t1c1oh...

ではブラウザに表示されず、「 =.csv 」を除いたもので使用してもOKでしょうか?また、「 =.csv 」を付けたら何か特別な機能とかが使えるのでしょうか?

それと、自分はC#は勉強し始めたばっかりなのでBuild a C# Stock Quote WebService Part 1/2 のサイトでは書かれてるコードで何ができるかが意味不明です。そのコードでquote.yahoo.comからデータを取得できるのでしょうか?


3 ● akibare
●30ポイント

http://quote.yahoo.com/

Yahoo! Finance - Get stock quotes, market news, mortgage rates & currency info.

// 説明不足ですみませんでした。Yahooのこのページ

// http://finance.yahoo.com/q?s=%5EDJI

// からDowの取引値、高値、安値(”Day’s Range”というのがその日の高値と安値ですね)が見れます

// そこのページから[Download Data]というリンクをクリックすると、htmlのテーブルの内容がCSVのストリームとしてダウンロードできます

// リンクのページのコードはWebService用でしたが、適当に以下の書き直すことができました


// (あれ、IEオブジェクトを使わなければならないのでしたっけ?だとしたら的外れなのでキャンセルしてください。。。)

// ちなみに、IEオブジェクトを使わなくても良いのならばフリーのWebServiceを使うのがよりトレンディでしょうね


// IEオブジェクトを使う場合はCreateObjectでオブジェクトを作ってNavigateメソッドでページをロードして

// DocumentプロパティがDOMオブジェクトなのでうまく操作して目的の値をゲットします。


using System;

using System.Net;

using System.IO;

using System.Text;


public class Test

{

static public void Main(string[] argv)

{

Test t = new Test();

t.GetDowJonesData();

}

public string GetDowJonesData()

{

string result=””;

try

{

// このURLからCSVとしてDow JonesのデータがGETできる

string serverURL = ”http://finance.yahoo.com/d/quotes.csv?s=%5EDJI&f=sl1d1t1c1oh...”;

HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(serverURL);


// ここはProxyを使う場合なので直の場合は削除してください(こちらの環境では必要だったので)

WebProxy myProxy = new WebProxy(”XX.XX.XX.XX:8080”, true, null, new NetworkCredential(”UserName”, ”UserPassword”, ”DomainName”));

myProxy.BypassProxyOnLocal = true;

webreq.Proxy = myProxy;


// データをHTTPでゲットしてストリームとして読み込みます

HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();

StreamReader strm = new StreamReader(webresp.GetResponseStream(), Encoding.ASCII);


// 一行目に全部書いてあるので一行を読みこみ、カンマでスプリットします

string strContent = strm.ReadLine();

string[] contents=strContent.ToString().Split(’,’);

System.Console.WriteLine(”平均値:” + contents[1]);

System.Console.WriteLine(”高値:” + contents[6]);

System.Console.WriteLine(”安値:” + contents[7]);

}

catch(Exception)

{

result=”exception”;

}

return result;

}

}

◎質問者からの返答

WebServiceでできるならIEオブジェクトを使う必要は

ないのですが、IEオブジェクトも知識程度に知っておきたいです。

度々長い文章ありがとうございました。


4 ● shampoohat
●15ポイント

http://www.hatena.ne.jp/1120421331#a1

人力検索はてな - IEオブジェクトに関する質問です。 ダウ平均株価の取引値、高値、安値 の各数値を取ってくるプログラムを教えてください。 windows上のデスクトップで機能するものでお願い..

はてなをちょっと眺めていたんですが、果敢にプログラミングに挑戦されているのですね。好感が持てます。ちょっとだけ突っ込ませてください。


> 『 ” 』がたぶん原因で、エラーになります


(誤り)

string seek = ”td width=”25%” align=”right”>”;


(正しい)

string seek = ”td width=¥”25%¥” align=¥”right¥”>”;


→ 文字列中に”を含む場合は、(半角で)¥”と書きます。円マークは、(半角で)「\」という形で表示される場合もあります。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

MSDN ライブラリ サイト移行に関する重要なお知らせ

表 1. C# における文字列リテラルのエスケープ シーケンス


をご参照ください。

◎質問者からの返答

>>果敢にプログラミングに挑戦されているのですね。

その通りです。

ためになりました

ありがとうございます。


5 ● tailliar
●15ポイント

http://www.hatena.ne.jp/awindow?qid=112042133

追加投稿失礼します。

str = str.SubString(str.IndexOf(”td width=¥”25%¥” align=¥”right¥”>”) + 29)

としましょう。

文字数は検索文字の文字数です。

strの先頭に、ほしい数字があるはずです。

◎質問者からの返答

先ほどのソースですけど、コンパイルしたとき以下のようなエラーがでました。

dow.cs(42,19): error CS1502: ’string.Split(params char[])’ に最も適しているオー

バーロード

メソッドには無効な引数がいくつか含まれています。

dow.cs(42,47): error CS1503: 引数 ’1’: ’string’ から ’char[]’ に変換できません。

とでます。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ