【问题标题】:Using Yahoo finance使用雅虎财经
【发布时间】:2015-04-10 02:29:50
【问题描述】:

我有一份 1000 只股票的清单,我想从雅虎财经那里得到价格。该程序似乎跳过了一些股票并且没有填写它。我使用的代码是

     void display(String symbol) throws IOException
       {

                    URL yahoofin = new URL("http://finance.yahoo.com/d/quotes.csv?s=" + symbol + "&f=l1kjm3m4r"); 
                    URLConnection yc = yahoofin.openConnection(); 

        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
        String inputLine; 

        while ((inputLine = in.readLine()) != null) 
        { 

            System.out.println("ing= "+ing+" "+inputLine);
            info[ing]=inputLine;


        } 
        System.out.println("ing = "+ing);

        in.close(); 
    /* 
    catch (Exception ex) 
    { 
       // log.error("Unable to get stockinfo for: " + symbol + ex); 
    } 
     */
 } 

我不断地从另一个函数传递新符号,一次十个。 BUt ing 有时会打印 7。(这意味着跳过库存)。我哪里错了。

【问题讨论】:

  • ing 在哪里设置/修改?这是什么意思?
  • 如果您有兴趣,我回复了一个类似的问题,但代码在 Excel / VBA 中:stackoverflow.com/a/9429975/829571
  • 我不明白该链接中的任何内容,但你能告诉我哪里出错了吗?
  • ing 只是一个测试变量,它计算函数正在读取的行数

标签: java yahoo-finance


【解决方案1】:

您可能希望在通话之间添加延迟。有时雅虎不接受非常高频率的请求并拒绝其中的一些请求。

【讨论】:

    【解决方案2】:

    每个请求可以传递多个符号(我认为最多 50 个),以“+”分隔。 这应该会大大减少您的请求数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2014-05-24
      相关资源
      最近更新 更多