5

私は、ゴールド レートを表示し、このためのグラフを作成する 1 つのアプリケーションを開発しています。このゴールド レートを定期的に提供している 1 つのWeb サイト
を見つけました。私の質問は、この特定の値を HTML ページから抽出する方法です。 抽出する必要があるリンクは次のとおりです = http://www.todaysgoldrate.co.in/todays-gold-rate-in-pune/この html ページには次のタグとコンテンツがあります。

<p><em>10 gram gold Rate in pune = Rs.31150.00</em></p>     

これは抽出に使用するコードですが、特定のコンテンツを抽出する方法が見つかりませんでした。

public class URLExtractor {

private static class HTMLPaserCallBack extends HTMLEditorKit.ParserCallback {

    private Set<String> urls;

    public HTMLPaserCallBack() {
        urls = new LinkedHashSet<String>();
    }

    public Set<String> getUrls() {
        return urls;
    }

    @Override
    public void handleSimpleTag(Tag t, MutableAttributeSet a, int pos) {
        handleTag(t, a, pos);
    }

    @Override
    public void handleStartTag(Tag t, MutableAttributeSet a, int pos) {
        handleTag(t, a, pos);
    }

    private void handleTag(Tag t, MutableAttributeSet a, int pos) {
        if (t == Tag.A) {
            Object href = a.getAttribute(HTML.Attribute.HREF);
            if (href != null) {
                String url = href.toString();
                if (!urls.contains(url)) {
                    urls.add(url);
                }
            }
        }
    }
}

public static void main(String[] args) throws IOException {
    InputStream is = null;
    try {
        String u = "http://www.todaysgoldrate.co.in/todays-gold-rate-in-pune/";   
        //Here i need to extract this content by tag wise or content wise....  

前もって感謝します.......

4

2 に答える 2

3

あなたは次のようなライブラリを使用できますJsoup

ここから入手できます-> Jsoupをダウンロード

これがそのAPIリファレンスです-> JsoupAPIリファレンス

Jsoupを使用してHTMLコンテンツを解析するのは非常に簡単です。

以下はあなたに役立つかもしれないサンプルコードです。

public class GetPTags {

           public static void main(String[] args){

             Document doc =  Jsoup.parse(readURL("http://www.todaysgoldrate.co.intodays-gold-rate-in-pune/"));
             Elements p_tags = doc.select("p");
             for(Element p : p_tags)
             {
                 System.out.println("P tag is "+p.text());
             }

            }

        public static String readURL(String url) {

        String fileContents = "";
        String currentLine = "";

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(url).openStream()));
            fileContents = reader.readLine();
            while (currentLine != null) {
                currentLine = reader.readLine();
                fileContents += "\n" + currentLine;
            }
            reader.close();
            reader = null;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "Error Message", JOptionPane.OK_OPTION);
            e.printStackTrace();

        }

        return fileContents;
    }

}
于 2012-10-30T14:35:15.750 に答える
1

http://java-source.net/open-source/crawlers

その API はどれでも使用できますが、純粋な JDK で HTML を解析しないでください。

于 2012-10-30T14:24:23.610 に答える