List of usage examples for org.jsoup.nodes Document getElementsByClass
public Elements getElementsByClass(String className)
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; }