HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0718
ガビーンMSNからレートの取得3解決


ガビーン

リンク

2006/7/18(Tue) 14:20:59|NO.1404

どうもこんにちは
早速質問させてください
MSNのレートページ
http://jp.moneycentral.msn.com/investor/market/rates.asp?Region=1&Compare=7
からレートをすべて取得しようとおもって
下のスクプリトをいろいろいじってみたのですが
いい結果がでません
sockopen 0,"quote.yahoo.co.jp",80:if stat{goto *er1}
sockput "GET /m3?u HTTP/1.0\nHost:???\nUser-Agent:???\n\n":if stat{goto *er1}
※このスクプリトは
 http://hsp.tv/play/pforum.php?mode=all&num=1205
 のページの一部をしようしています
MSNからすべてのレートを取得するにはどうしたよいのでしょうか
ヒントでもいいので方法を教えてくださいよろしくお願いします



この記事に返信する


kz3

リンク

2006/7/18(Tue) 15:19:36|NO.1407

まず、掲示板に質問を投稿したからといって必ずしも解答・回答が得られるわけではありません。

なのでレスが付かなかったら「みんな分からないんだな...」と思い、次の行動は
1.自力で調べ上げ、何とかする。その為にはネットワークを入門レベルから勉強する。
2.諦める
3.その他

例えば
「あれからいろいろ調べて、かれこれこうまで分かったのですが、
 肝心のここがこれこれこう分からないのです。」
など途中経過など報告するのがいいでしょう。

改めて同じ質問を上げ直すのは何も努力していない証拠です。

と、これだけで終わっては「また出来ないくせにw」と誰かに思われてしまうので、
次のコードを使っていろいろ試してみてください。
( 私も分からない人の一人ですが、いろいろ調べたら一応出来ましたので )

host = "jp.moneycentral.msn.com" path = "/investor/market/rates.asp?Region=1&Compare=7" sockopen 0,host,80 sockput "GET "+path+" HTTP/1.1\nHost:"+host+"\n\n"

いろいろ調べると次のような一文に出会います。
> HTTP/1.1 のクライアントは Host ヘッダでホスト名を送信しなくてはなりません。



さくら

リンク

2006/7/18(Tue) 21:49:02|NO.1418

hspsockを使ったものでは、ないのですが、要は、MSNのレートページのHTMLソース(テキスト)
を取得できれば良いわけですよね。テキストが取得できれば、後は、タグや不要な部分を除去
して整形し、目的の部分を編集することになります。テキストの整形部分は自力で研究して下
さいね(^^;ここでは、MDACのADODB.Stream による方法を載せておきます。これは、
旧HSP3掲示板に載せたことがあるものです。過去ログを探せば出てくると思います。
質問の意図と違っていたら、すみません。良く外すもので・・・

;※WinNT系のみ動作します。98系は不可 (Win2000で動作確認)
;Microsoft Data Access Components (MDAC) 2.8 SP1以降が必要
;98系は、下記よりMDACをダウンロードすることにより、ADODB.Stream オブジェクトが
;使えるようになります。(URLは長いので、折り返しています。)
;
;▼▼▼▼ Microsoft Data Access Components ダウンロード ▼▼▼▼
;http://www.microsoft.com/downloads/details.aspx?
;FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=ja

#define adTypeBinary 1
#define adSaveCreateNotExist 1
#define adSaveCreateOverWrite 2

;▼mesboxを作成
ReturnHTML=""
font "MS ゴシック",14 : objmode 2
mesbox ReturnHTML,ginfo(10)-4,ginfo(11)-24,5
objectID=0 : objsel objectID

;▼URLを指定
sURL = "http://jp.moneycentral.msn.com/investor/market/rates.asp?Region=1&Compare=7"
;▼セーブする場合のHTML名 (任意)
sDest = dirinfo(0)+"\\dsthtml.htm"
;▼CharCodeを指定
charcode = "Shift_JIS"
;charcode = "UTF-8"

title sURL
newcom objXMLHTTP, "Microsoft.XMLHTTP"
objXMLHTTP->"Open" "GET", sURL, 0
objXMLHTTP->"Send"

;▼status OKならHTMLテキストファイルを指定のCharCodeで取得
if objXMLHTTP("status") = 200 {
newcom objRS,"ADODB.Stream"
if stat!0 : dialog "ADODB.Streamがサポートされていません。",0 : end
objRS("Type") = 1
objRS->"Open"
sHtml=objXMLHTTP("ResponseBody")
objRS->"Write" sHtml
objRS("Position") = 0
objRS("Type") = 2
objRS("Charset") = charcode
ReturnHTML=objRS("ReadText")
;ファイルとして保存する場合
;objRS->"Savetofile" sDest,adSaveCreateOverWrite
objRS->"Close"
}else{
dialog "接続に失敗致しました。",0,"エラー"
}

objprm objectID,ReturnHTML
if vartype(objRS)==6 {
if varuse(objRS)==1 : delcom objRS
}
delcom objXMLHTTP
stop



ガビーン

リンク

2006/7/19(Wed) 14:44:59|NO.1427

回答ありがとうございます
参考にしてがんばってみます



ONION software Copyright 1997-2023(c) All rights reserved.