質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

1574閲覧

cgiがnull、スクレイピングしたい

cancat

総合スコア313

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/08/30 01:13

こんにちは。
Windows10でC#のアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。

###前提・実現したいこと
日没時刻を知りたいです。

###試したこと
Browserで国立天文台のページにアクセスしました。

###発生している問題・エラーメッセージ
接続できませんでした。
接続が切断されました: 送信時に、予期しないエラーが発生しました。。プロセスは終了しているため、要求された情報は利用できません。

###該当のソースコード

C#

1string url = "http://www.nao.ac.jp/cgi-bin/koyomi/sunmoon.cgi"; 2string html = wc.DownloadString(URL); 3

###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586

です。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2017/08/30 01:50

コードの全体を示してください。質問に書かれている該当のソースコードにはプロセスに関する記述がありません。
guest

回答2

0

ベストアンサー

はじめに

  • wcとは何ですか? WebClientをインスタンス化した変数ですか?
  • urlの変数定義は小文字なのにDownloadStringの引数にしているのは何故大文字なのですか?

URLという別の変数を引数として与えていますか?
urlという変数は意味が無いのでしょうか?
... 等 回答者を無駄に混乱させるだけですので質問時は出来る限り正確にお願いします。

また、エラー内容も一部だけではなく全て載せるように宜しくお願い致します。

回答

必要なNuGetパッケージ

ps1

1Install-Package HtmlAgilityPack

サンプルコード

C#

1var client = new HttpClient(); 2var str = await client.GetStringAsync("http://eco.mtk.nao.ac.jp/cgi-bin/koyomi/sunmoon.cgi"); 3// または 4// var str = client.GetStringAsync("http://eco.mtk.nao.ac.jp/cgi-bin/koyomi/sunmoon.cgi").Result; 5 6var html = new HtmlDocument(); 7html.LoadHtml(str); 8 9var sunsetTime = html.DocumentNode.SelectSingleNode("//*[@id=\"tab\"]/table/tr[3]/td[2]").InnerText; 10Console.WriteLine(sunsetTime);

出力

txt

118:12

投稿2017/08/30 02:14

aglkjggg

総合スコア769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2017/08/30 03:40

•wcとは何ですか? WebClientをインスタンス化した変数ですか? はい。そうでした。抜けてました…。 •urlの変数定義は小文字なのにDownloadStringの引数にしているのは何故大文字なのですか? URLという別の変数を引数として与えていますか? urlという変数は意味が無いのでしょうか? はい。コードからコピペしたときに、URLを書き間違えました。 ... 等 回答者を無駄に混乱させるだけですので質問時は出来る限り正確にお願いします。 失礼しました…。 また、エラー内容も一部だけではなく全て載せるように宜しくお願い致します。 エラーのMessageだけでした…。 コードありがとうございます。 HttpClientを使うのは、WebClientではダメってことでしょうか?
guest

0

国立天文台のホームページを見てみたのですが
このCGIをアプリから利用して良いとの記述はみつかりませんでした。
もし利用したい場合、国立天文台へ連絡を取り、利用許可を頂く必要があると思います。

他に日の入り時刻を取得できるAPIは無いか調べたところ
下記が見つかりました。
使ったことはないですし、この他にもAPIを公開しているとこがあるかもしれません。

ちなみに下記APIを使う場合には、利用規約をきちんと読んでください。
同意できない場合には利用できないことになります。

http://labs.bitmeister.jp/

投稿2017/08/30 02:54

kikukiku

総合スコア514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2017/08/30 03:54

情報ありがとうございます。API情報ありがとうございます。 APIがあるのであれば、こちらを利用してみようかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問