2017-05-20 9 views
0

以前のヤフー・ファイナンスのダウンロードURLはもう機能していないので、私は今、このようなものが残されています。新ヤフー・ファイナンスURL

https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1492524105&period2=1495116105&interval=1d&events=history&crumb=tO1hNZoUQeQ

誰もが周期1(及び周期2は)に変換する方法を知っています日付(およびその逆)

何か助けに感謝します!

ありがとうございます!

+0

クエストに返答するのではなく、理由なくダウンボートしてくださいn ...人々に行く方法! – Molasar

+0

ここではお答えします https://stackoverflow.com/questions/44030983/yahoo-finance-url-not-working – ThomasMcLeod

+0

[Yahoo Finance URLが動作しない]可能な複製(https://stackoverflow.com/questions/44030983/) yahoo-finance-url-not-working) – ThomasMcLeod

答えて

1

これは古い機能を再作成するためのものです。私はChromeでFedoraを実行しています。

(1)あなたのWebブラウザのユーザーエージェント文字列を見つけます(私は "私のユーザーエージェント文字列は何ですか?"のようなものを探し出し、使用しているブラウザ用にすぐにページを見つけました)。

(2)Chrome用の「cookies.txt」ファイルをエクスポートするパッケージをインストールします(「Chromeの書き出し」などのようなものでも検索されます)。Mozilla/5.0(X11; Linux x86_64) cookies.txt "と表示し、表示しているページのcookies.txtをエクスポートするクロム拡張子をすぐに見つけました)。

(3)Yahoo financeで注目シンボルの過去のダウンロードページに移動します。ダウンロードリンク(上記のように)とそのページのcookies.txtに「クラム」を保存します。

(4)これでwgetを使用してデータを取得できます。コマンドは次のようになります:

wget --load-cookies [保存された料理のファイル] -U "[ユーザーエージェントのストリングを見つけました]" -O [希望する出力のCSV] https://query1.finance.yahoo.com/v7/finance/download/[THEシンボルはあなたのために歴史的なデータを]?周期1 = [UNIX START TIME] &。周期= [UNIX END TIME] \ &間隔= 1D \ &イベント=歴史\ &クラム= \ [クラムYOU SAVED]

周期1 = ...です開始日のUNIXタイムスタンプ(1970年1月1日00:00:00 GMTからの秒)、およびperiod2 = ...は終了日のUNIXタイムスタンプです。

私はこの方法でいくつかのシンボルをプログラムでダウンロードすることができました。結果のCSVファイルの列の順序が古いichart APIから変更され、履歴データで見つかったエラーの数が、データのエラー率よりも大幅に高くなっています。

これがどれくらい時間がかかるか、または長期間安定しているかどうかは推測できません。 YMMV。

0

period1とperiod2は、単にタイムスタンプ(POSIXタイムスタンプ)です。私はあなたが使用したい日付の任意の時間を使用することができると思う。たとえば、2014-05-20の場合は、00:00:00から23:59:59までの任意の時間を使用できます。 (更新:Yahooはちょうどここに変更を加えました。市場閉鎖後の時間を使用しなければなりません。そうでなければ、データは最終日には間に合わないでしょう)。

Iその新しいAPIを使用するための簡単なPython3コードをまとめました。ソースコードyahoo_quote_downloadのGitHubをチェックしてください。

+0

私は[yahoo_quote_download](https://github.com/c0redumb/yahoo_quote_download)をチェックアウトしています。残念ながら、私はPythonに全く新しいです。 CSVダウンロードの構文は何ですか?使用例はありますか? –

+0

CSVは「カンマ区切り値」の略です。 https://en.wikipedia.org/wiki/Comma-separated_values – c0redumb

+0

例として、Yahoo financeに行き、株式を選択し、履歴データタブに行き、 "Download Data"をクリックしてください。 CSVファイルがダウンロードされます。 – c0redumb

1

これらはUNIXのタイムスタンプ、つまりEpochからの秒数です。UNIXタイムスタンプで何http://www.unixtimestamp.com/

から取ら

引用?
UNIXタイムスタンプは、実行中の合計秒数として 時間を追跡する方法です。このカウントは、1970年1月1日のUnix エポック(UTC)から開始されます。したがって、UNIXタイムスタンプは、特定の日付とUnix エポックとの間の秒数だけの です。この時点で技術的に が地球上のどこにいても変更されないことも指摘しておく必要があります( このサイトへの訪問者のおかげで)。これは

次のC#コードは

//credits to ScottCher 
//reference http://stackoverflow.com/questions/249760/how-to-convert-a-unix-timestamp-to-datetime-and-vice-versa 
private static DateTime UnixTimestampToDateTime(double unixTimeStamp) 
{ 
    //Unix timestamp Is seconds past epoch 
    return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(unixTimeStamp).ToLocalTime(); 
} 

//credits to Dmitry Fedorkov 
//reference http://stackoverflow.com/questions/249760/how-to-convert-a-unix-timestamp-to-datetime-and-vice-versa 
private static double DateTimeToUnixTimestamp(DateTime dateTime) 
{ 
    //Unix timestamp Is seconds past epoch 
    return (dateTime.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds; 
} 

のUnixタイムスタンプをDateTimeの間で変換するのに役立ちますオンラインとクライアント側の両方のアプリケーションを追跡して、動的に日付情報 をソートし、分散のためのコンピュータシステムに非常に 便利です注::period1とperiod2に置き換える前に小数点以下を切り捨てることを確認してください。

関連する問題