Jsoup股票报价刮刮雅虎财务

时间:2013-11-18 05:45:58

标签: java screen-scraping jsoup yahoo-finance stockquotes

使用OracleSQL和Java

我有一个“TickerSymbol数据库”和一个“Stockquote数据库”。

从“TickerSymbolDatabase”中选择“GOOG”,“APPL”,“FB”和“AMZN”中的TickerSymbol 并在YahooFinance URL末尾传播股票代码。 http://finance.yahoo.com/q?s=(TICKER)

然后找到股票报价, 并将报价数据插入“Stockquote数据库”。

我不确定如何使用Jsoup选择器, 或如何在YahooFinance URL的末尾传播股票代码符号

2 个答案:

答案 0 :(得分:1)

这是一个简单的例子。请检查服务条款,您可能更喜欢Stanley建议通过CSV获取。我想展示如何在jsoup中获取它。将其纳入Oracle是一个不同的问题。

String[] codes = {"TSLA", "F", "TM"};
String baseUrl = "http://finance.yahoo.com/q?s=";
String ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.33 (KHTML, like Gecko) Chrome/27.0.1438.7 Safari/537.33";

for (String code : codes) {
    String url = baseUrl + code;
    Document doc  = Jsoup.connect(url).userAgent(ua).timeout(10*1000).get();
    String price = doc.select(".time_rtq_ticker").first().text();
    String name = doc.select(".title h2").first().text();

    System.out.println(String.format("%s [%s] is trading at %s", name, code, price));
}

这输出:

Tesla Motors, Inc. (TSLA) [TSLA] is trading at 135.45
Ford Motor Co. (F) [F] is trading at 17.07
Toyota Motor Corporation (TM) [TM] is trading at 127.98

我喜欢使用Try jsoup来测试和调试URL响应和选择器查询。

答案 1 :(得分:0)