Example usage for org.jsoup.nodes Document getElementsByClass

List of usage examples for org.jsoup.nodes Document getElementsByClass

Introduction

In this page you can find the example usage for org.jsoup.nodes Document getElementsByClass.

Prototype

public Elements getElementsByClass(String className) 

Source Link

Document

Find elements that have this class, including or under this element.

Usage

From source file:Main.java

public static void main(String[] args) {

    String str = "<div><h2 class=\"?class\">test</h2></div>";
    Document doc = Jsoup.parse(str);

    Elements el = doc.getElementsByClass("?class");
    System.out.println(el);//from  w  w  w.  j  a  v a 2s.  co m

}

From source file:Main.java

public static void main(String[] args) {
    String html = "<html><head></head><body><div class=\"post_video\" style=\"background-image:url(http://img.youtube.com/vi/JFf3uazyXco/2.jpg);\"></body></html>";

    Document doc = Jsoup.parse(html);
    Elements elements = doc.getElementsByClass("post_video");

    for (Element e : elements) {
        String attr = e.attr("style");
        System.out.println(attr);
    }//  www  . jav  a  2s.  c  o  m
}

From source file:io.github.carlomicieli.footballdb.starter.parsers.PlayerCareerParser.java

protected static Optional<Element> careerTable(Document doc) {
    Optional<Element> table = doc.getElementsByClass("data-table1").stream()
            .filter(e -> e.attr("summary").startsWith("Career Stats")).findFirst();
    return table;
}

From source file:controllers.BBProxy.java

public static F.Promise<Result> index(String query) {

    if (StringUtils.isEmpty(query)) {

        F.Promise.promise(new F.Function0<Object>() {
            @Override//from ww  w.  j av  a 2s . c o  m
            public Object apply() throws Throwable {
                return ok(Json.toJson("Query parameter (q) not provided "));
            }

        });
    }

    F.Promise<WSResponse> wsResponsePromise = WS.url("http://www.bloomberg.com/search")
            .setQueryParameter("query", query).get();

    return wsResponsePromise.map(new F.Function<WSResponse, Result>() {
        @Override
        public Result apply(WSResponse wsResponse) throws Throwable {

            String body = wsResponse.getBody();

            List<Map<String, String>> ret = new ArrayList<Map<String, String>>();

            try {
                // Insert into map
                org.jsoup.nodes.Document doc = Jsoup.parse(body);
                Elements items = doc.getElementsByClass("search-result");

                for (Element item : items) {
                    Map<String, String> keyValue = new LinkedHashMap<String, String>();

                    keyValue.put("image",
                            item.getElementsByClass("search-result-story__thumbnail__image").attr("src"));
                    keyValue.put("title", item.getElementsByClass("search-result-story__headline").text());

                    int index = item.getElementsByClass("search-result-story__body").text()
                            .indexOf(" (Source: Bloomberg");

                    if (index == -1) {
                        keyValue.put("content", item.getElementsByClass("search-result-story__body").text());
                    } else {
                        keyValue.put("content", item.getElementsByClass("search-result-story__body").text()
                                .substring(0, index));
                    }

                    keyValue.put("date", item.getElementsByClass("published-at").text());
                    keyValue.put("url", "www.bloomberg.com/"
                            + item.getElementsByClass("search-result-story__thumbnail__link").attr("href"));

                    ret.add(keyValue);
                }

            } catch (DOMException e) {
                e.printStackTrace();
            }

            return ok(Json.toJson(ret));
        }
    });
}

From source file:com.geecko.QuickLyric.lyrics.MetalArchives.java

@Reflection
public static Lyrics fromMetaData(String artist, String title) {
    String baseURL = "http://www.metal-archives.com/search/ajax-advanced/searching/songs/?bandName=%s&songTitle=%s&releaseType[]=1&exactSongMatch=1&exactBandMatch=1";
    String urlArtist = artist.replaceAll("\\s", "+");
    String urlTitle = title.replaceAll("\\s", "+");
    String url;/*from ww w.j ava2  s . c o  m*/
    String text;
    try {
        String response = Net.getUrlAsString(String.format(baseURL, urlArtist, urlTitle));
        JSONObject jsonResponse = new JSONObject(response);
        JSONArray track = jsonResponse.getJSONArray("aaData").getJSONArray(0);
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < track.length(); i++)
            builder.append(track.getString(i));
        Document trackDocument = Jsoup.parse(builder.toString());
        url = trackDocument.getElementsByTag("a").get(1).attr("href");
        String id = trackDocument.getElementsByClass("viewLyrics").get(0).id().substring(11);
        text = Jsoup.connect("http://www.metal-archives.com/release/ajax-view-lyrics/id/" + id).get().body()
                .html();
    } catch (IOException e) {
        return new Lyrics(ERROR);
    } catch (JSONException e) {
        return new Lyrics(NO_RESULT);
    }
    Lyrics lyrics = new Lyrics(POSITIVE_RESULT);
    lyrics.setArtist(artist);
    lyrics.setTitle(title);
    lyrics.setText(text);
    lyrics.setSource(domain);
    lyrics.setURL(url);

    return lyrics;
}

From source file:com.geecko.QuickLyric.lyrics.LyricWiki.java

@Reflection
public static ArrayList<Lyrics> search(String query) {
    ArrayList<Lyrics> results = new ArrayList<>();
    query = query + " song";
    query = Normalizer.normalize(query, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+",
            "");//w w w  .  j ava  2s.  c  om
    try {
        URL queryURL = new URL(String.format(baseSearchUrl, URLEncoder.encode(query, "UTF-8")));
        Document searchpage = Jsoup.connect(queryURL.toExternalForm()).get();
        Elements searchResults = searchpage.getElementsByClass("Results");
        if (searchResults.size() >= 1) {
            searchResults = searchResults.get(0).getElementsByClass("result");
            for (Element searchResult : searchResults) {
                String[] tags = searchResult.getElementsByTag("h1").text().split(":");
                if (tags.length != 2)
                    continue;
                String url = searchResult.getElementsByTag("a").attr("href");
                Lyrics lyrics = new Lyrics(SEARCH_ITEM);
                lyrics.setArtist(tags[0]);
                lyrics.setTitle(tags[1]);
                lyrics.setURL(url);
                lyrics.setSource(domain);
                results.add(lyrics);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return results;
}

From source file:com.kantenkugel.discordbot.jdocparser.JDoc.java

private static void fetchJavaClassIndexes() {
    try {/*from   www  . j  a  va  2s.  co m*/
        Response res = Bot.httpClient
                .newCall(new Request.Builder().url(JDocUtil.JAVA_JDOCS_CLASS_INDEX).get().build()).execute();
        if (!res.isSuccessful()) {
            JDocUtil.LOG.warn("OkHttp returned failure for java8 index: " + res.code());
            return;
        }
        ResponseBody body = res.body();
        Document docBody = Jsoup.parse(body.byteStream(), "UTF-8", JDocUtil.JAVA_JDOCS_PREFIX);
        docBody.getElementsByClass("indexContainer").first().child(0).children().forEach(child -> {
            Element link = child.child(0);
            if (link.tagName().equals("a") && link.attr("href").startsWith("java/")) {
                javaJavaDocs.put(link.text().toLowerCase(), link.attr("href"));
            }
        });
    } catch (Exception e) {
        JDocUtil.LOG.error("Failed fetching the j8 class index", e);
    }
}

From source file:com.microsoft.azure.hdinsight.jobs.JobViewDummyHttpServer.java

public synchronized static void initlize() {
    if (isEnabled) {
        return;//from w  ww  .  j  a  v  a  2  s . c  om
    }
    try {
        server = HttpServer.create(new InetSocketAddress(PORT), 10);
        server.createContext("/clusters/", new HttpHandler() {
            @Override
            public void handle(final HttpExchange httpExchange) throws IOException {
                final RequestDetail requestDetail = getRequestDetail(httpExchange.getRequestURI());

                if (requestDetail == null) {
                    return;
                }

                IClusterDetail clusterDetail = requestDetail.getClusterDetail();

                if (clusterDetail == null) {
                    return;
                }

                String preUrl = "";
                switch (requestDetail.getApiType()) {
                case YarnHistory:
                    preUrl = yarnHistoryUrl;
                    break;
                case YarnRest:
                    preUrl = yarnPreRestUrl;
                    break;
                case LivyBatchesRest:
                    preUrl = LivyBatchesRestUrl;
                    break;
                default:
                    preUrl = sparkPreRestUrl;
                }

                String queryUrl = String.format(preUrl, clusterDetail.getName()) + requestDetail.getRestUrl();

                if (requestDetail.getApiType() == RequestDetail.APIType.YarnHistory) {
                    if (queryUrl.endsWith("stderr")) {
                        queryUrl = queryUrl + "?start=0";
                    }

                    TaskExecutor
                            .submit(new YarnHistoryTask(clusterDetail, queryUrl, new FutureCallback<String>() {
                                @Override
                                public void onSuccess(String str) {
                                    httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                    try {
                                        // work around of get job result
                                        //TODO: get job result by REST API
                                        Document doc = Jsoup.parse(str);
                                        Elements contentElements = doc.getElementsByClass("content");
                                        if (contentElements.size() == 1) {
                                            Elements elements = contentElements.get(0).getElementsByTag("pre");
                                            if (elements.size() == 1) {
                                                str = elements.get(0).html();
                                            }
                                        }

                                        httpExchange.sendResponseHeaders(200, str.length());
                                        OutputStream stream = httpExchange.getResponseBody();
                                        stream.write(str.getBytes());
                                        stream.close();
                                    } catch (IOException e) {
                                        LOGGER.error("Get job history error", e);
                                    }
                                }

                                @Override
                                public void onFailure(Throwable throwable) {
                                    httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                    try {
                                        String str = throwable.getMessage();
                                        httpExchange.sendResponseHeaders(200, str.length());
                                        OutputStream stream = httpExchange.getResponseBody();
                                        stream.write(str.getBytes());
                                        stream.close();
                                    } catch (Exception e) {
                                        LOGGER.error("Get job history error", e);
                                    }
                                }
                            }));
                } else if (requestDetail.getApiType() == RequestDetail.APIType.LivyBatchesRest) {
                    TaskExecutor.submit(new LivyTask(clusterDetail, queryUrl, new FutureCallback<String>() {
                        @Override
                        public void onSuccess(String str) {
                            httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                            try {
                                String applicationId = requestDetail.getProperty("applicationId");
                                if (applicationId != null) {
                                    str = JobUtils.getJobInformation(str, applicationId);
                                }

                                httpExchange.sendResponseHeaders(200, str.length());
                                OutputStream stream = httpExchange.getResponseBody();
                                stream.write(str.getBytes());
                                stream.close();
                            } catch (IOException e) {
                                LOGGER.error("Get job history error", e);
                            }
                        }

                        @Override
                        public void onFailure(Throwable throwable) {
                            httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                            try {
                                String str = throwable.getMessage();
                                httpExchange.sendResponseHeaders(200, str.length());
                                OutputStream stream = httpExchange.getResponseBody();
                                stream.write(str.getBytes());
                                stream.close();
                            } catch (Exception e) {
                                LOGGER.error("Get job history error", e);
                            }
                        }
                    }));

                } else {
                    TaskExecutor.submit(new RestTask(clusterDetail, queryUrl, new FutureCallback<String>() {
                        @Override
                        public void onSuccess(String str) {
                            httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                            try {
                                httpExchange.sendResponseHeaders(200, str.length());
                                OutputStream stream = httpExchange.getResponseBody();
                                stream.write(str.getBytes());
                                stream.close();
                            } catch (IOException e) {
                                LOGGER.error("Get job history error", e);
                            }
                        }

                        @Override
                        public void onFailure(Throwable throwable) {
                            httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                            try {
                                String str = throwable.getMessage();
                                httpExchange.sendResponseHeaders(200, str.length());
                                OutputStream stream = httpExchange.getResponseBody();
                                stream.write(str.getBytes());
                                stream.close();
                            } catch (Exception e) {
                                LOGGER.error("Get job history error", e);
                            }
                        }
                    }));
                }

            }
        });

        executorService = Executors.newFixedThreadPool(NO_OF_THREADS);
        server.setExecutor(executorService);
        server.start();
        isEnabled = true;
    } catch (IOException e) {
        LOGGER.error("Get job history error", e);
    }
}

From source file:com.screenslicer.common.CommonUtil.java

public static Element getElementByClassName(Document doc, String tagName, String className) {
    if (doc == null) {
        return null;
    }/*from ww  w . j  a  va 2s .c o m*/
    Elements elements = doc.getElementsByClass(className);
    for (Element element : elements) {
        if (element.tagName().equalsIgnoreCase(tagName)) {
            return element;
        }
    }
    return null;
}

From source file:com.geecko.QuickLyric.lyrics.Genius.java

public static Lyrics fromURL(String url, String artist, String title) {
    Document lyricsPage;
    String text;/*from   w w w. j  a va  2 s.  c om*/
    try {
        lyricsPage = Jsoup.connect(url).get();
        Elements lyricsDiv = lyricsPage.select("div.lyrics");
        if (lyricsDiv.isEmpty())
            throw new StringIndexOutOfBoundsException();
        else
            text = Jsoup.clean(lyricsDiv.html(), Whitelist.none().addTags("br")).trim();
    } catch (HttpStatusException e) {
        return new Lyrics(Lyrics.NO_RESULT);
    } catch (IOException | StringIndexOutOfBoundsException e) {
        e.printStackTrace();
        return new Lyrics(Lyrics.ERROR);
    }
    if (artist == null) {
        title = lyricsPage.getElementsByClass("text_title").get(0).text();
        artist = lyricsPage.getElementsByClass("text_artist").get(0).text();
    }
    Lyrics result = new Lyrics(Lyrics.POSITIVE_RESULT);
    if ("[Instrumental]".equals(text))
        result = new Lyrics(Lyrics.NEGATIVE_RESULT);
    result.setArtist(artist);
    result.setTitle(title);
    result.setText(text);
    result.setURL(url);
    result.setSource("Genius");
    return result;
}