【问题标题】:Jsoup Stock Quote Scraping Yahoo FinanceJsoup 股票行情抓取雅虎财经
【发布时间】:2013-11-18 05:45:58
【问题描述】:

使用 OracleSQL 和 Java

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

从“TickerSymbolDatabase”中的“GOOG”、“APPL”、“FB”和“AMZN”中选择 TickerSymbols
并在 YahooFinance URL 的末尾循环显示股票代码。 http://finance.yahoo.com/q?s= (TICKER)

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

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

【问题讨论】:

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


    【解决方案1】:

    这是一个简单的例子。请检查 TOS,您可能更喜欢 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 个单一值通常并不难。但是您是否尝试过访问历史数据? - 该数据是用javascript加载的,所以JSoup真的帮不上忙。还有一个 CSV 下载,但 a-href 标记也是从 javascript 创建的,所以也没有帮助。从中检索 CSV 数据的 URL 会给出 401-未经授权的 http 响应。因此,似乎无法访问历史数据。
    • 似乎我需要传递一个同意 cookie,因为使用上面的代码并打印 html 我得到类似 ´
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2013-11-06
    相关资源
    最近更新 更多