【问题标题】:Parse Company Info解析公司信息
【发布时间】:2013-01-25 05:25:41
【问题描述】:

我想知道是否有人知道如何成功解析公司名称“Alcoa Inc.”。显示在下面的 URL 中。显示图片会容易得多,但我没有足够的声誉。任何帮助,将不胜感激。

http://www.google.com/finance?q=NYSE%3AAA&ei=LdwVUYC7Fp_YlgPBiAE

这是我迄今为止尝试使用 jsoup 解析 div 类的方法:

 <div class="appbar-snippet-primary">
<span>Alcoa Inc.</span>
</div>



public Elements htmlParser(String url, String element, String elementType, String returnElement){


        try {

            Document doc = Jsoup.connect(url).get();
            Document parse = Jsoup.parse(doc.html());

            if (returnElement == null){

                return parse.select(elementType + "." + element);

            }

            else {

                return parse.select(elementType + "." + element + " " + returnElement);

            }


        }  

public String htmlparseGoogleStocks(String url){

        String pr = "pr";
        String appbar_center = "appbar-snippet-primary";
        String val = "val";

        String span = "span";
        String div = "div";
        String td = "td";

        Elements price_data;
        Elements title_data;
        Elements more_data;

        price_data = htmlParser(url, pr, span, null);

        title_data = htmlParser(url, appbar_center, div, span);

        //more_data = htmlParser(url, val, td, null);

        //String stockprice = price_data.text().toString();
        String title = title_data.text().toString();

        //System.out.println(more_data.text());

        return title;

【问题讨论】:

  • 您是否尝试查看 HTML 源代码?
  • 我已成功解析公司价格,但由于某种原因,我的代码无法获取包含公司名称的 div。
  • 您使用的是哪个 HTML 解析器?我自己更喜欢JSoup。而且您不应该发布页面的图像,而应该发布页面源 HTML 的相关部分。

标签: java parsing web-scraping html-parsing finance


【解决方案1】:

我自己会分析感兴趣页面的源 HTML,然后使用 JSoup 提取信息。例如,使用一个非常小的 JSoup 程序,如下所示:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class GoogleFinance {

   public static final String PAGE = "https://www.google.com/finance?q=NASDAQ:XONE";  

   public static void main(String[] args) throws IOException {
      Document doc = Jsoup.connect(PAGE).get();

      Elements title = doc.select("title");

      System.out.println(title.text());
   }
}

你得到回报:

ExOne Co:纳斯达克:XONE 行情和新闻 - Google 财经

没有比这更容易的了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多