List of usage examples for org.jsoup.nodes Element select
public Elements select(String cssQuery)
From source file:com.adarshahd.indianrailinfo.donate.PNRStat.java
private void createTableLayoutPsnDtls() { if (mPageResult.contains("FLUSHED PNR / ") || mPageResult.contains("Invalid PNR")) { mTextViewPNRSts.setText("The PNR entered is either invalid or expired! Please check."); mFrameLayout.removeAllViews();//from w ww .j a va 2s. c om mFrameLayout.addView(mTextViewPNRSts); mStrPassengerDetails = null; return; } if (mPageResult.contains("Connectivity Failure") || mPageResult.contains("try again")) { mTextViewPNRSts.setText("Looks like server is busy or currently unavailable. Please try again later!"); mFrameLayout.removeAllViews(); mFrameLayout.addView(mTextViewPNRSts); mStrPassengerDetails = null; return; } List<List<String>> passengersList; if (mPassengerDetails == null || mPassengerDetails.getPNR() != mPNRNumber) { Elements elements = Jsoup.parse(mPageResult).select("table tr td:containsOwn(S. No.)"); Iterator iterator = null; try { iterator = elements.first().parent().parent().getElementsByTag("tr").iterator(); } catch (Exception e) { Log.i("PNRStat", mPageResult); return; } passengersList = new ArrayList<List<String>>(); List<String> list; Element tmp; while (iterator.hasNext()) { tmp = (Element) iterator.next(); if (tmp.toString().contains("Passenger")) { list = new ArrayList<String>(); list.add(tmp.select("td").get(0).text()); list.add(tmp.select("td").get(1).text()); list.add(tmp.select("td").get(2).text()); if (!tmp.select("td").get(2).text().toUpperCase().contains("CNF") && !tmp.select("td").get(2).text().toUpperCase().contains("CAN")) { isWaitingList = true; } passengersList.add(list); } } mPassengerDetails = new PassengerDetails(passengersList, mPNRNumber); } else { passengersList = mPassengerDetails.getPassengerList(); } mTableLayoutPsn = new TableLayout(mActivity); TableRow row; TextView tv1, tv2, tv3, tv4; mStrPassengerDetails = new ArrayList<String>(); int current; mTableLayoutPsn.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); for (int i = 0; i < passengersList.size(); ++i) { current = i + 1; row = new TableRow(mActivity); row.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); tv1 = new TextView(mActivity); tv2 = new TextView(mActivity); tv3 = new TextView(mActivity); tv4 = new TextView(mActivity); tv1.setText("" + (i + 1) + "."); tv2.setText(" " + passengersList.get(i).get(0)); tv3.setText(" " + passengersList.get(i).get(1)); tv4.setText(" " + passengersList.get(i).get(2)); tv1.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium); tv2.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium); tv3.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium); tv4.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium); tv1.setPadding(10, 10, 10, 10); tv2.setPadding(10, 10, 10, 10); tv3.setPadding(10, 10, 10, 10); tv4.setPadding(10, 10, 10, 10); row.addView(tv1); row.addView(tv2); row.addView(tv3); row.addView(tv4); row.setBackgroundResource(R.drawable.card_background); row.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); mTableLayoutPsn.addView(row); String strPsn = "" + current + ". " + passengersList.get(i).get(0) + " " + passengersList.get(i).get(1) + " " + passengersList.get(i).get(2); mStrPassengerDetails.add(strPsn); } }
From source file:me.vertretungsplan.parser.UntisCommonParser.java
void parseDay(SubstitutionScheduleDay day, Element next, SubstitutionSchedule v, String klasse) throws JSONException, CredentialInvalidException { if (next.className().equals("subst") || next.select(".list").size() > 0 || next.text().contains("Vertretungen sind nicht freigegeben") || next.text().contains("Keine Vertretungen")) { //Vertretungstabelle if (next.text().contains("Vertretungen sind nicht freigegeben")) { return; }//from www . j a v a 2s . com parseSubstitutionScheduleTable(next, scheduleData.getData(), day, klasse); } else { //Nachrichten parseMessages(next, day); next = next.nextElementSibling().nextElementSibling(); parseSubstitutionScheduleTable(next, scheduleData.getData(), day, klasse); } v.addDay(day); }
From source file:de.geeksfactory.opacclient.apis.Open.java
protected DetailledItem parse_result(Document doc) { DetailledItem item = new DetailledItem(); // Title and Subtitle item.setTitle(doc.select("span[id$=LblShortDescriptionValue]").text()); String subtitle = doc.select("span[id$=LblSubTitleValue]").text(); if (!subtitle.equals("")) { item.addDetail(new Detail(stringProvider.getString(StringProvider.SUBTITLE), subtitle)); }/*from w ww . j a v a 2 s . c om*/ // Cover if (doc.select("input[id$=mediumImage]").size() > 0) { item.setCover(doc.select("input[id$=mediumImage]").attr("src")); } else if (doc.select("img[id$=CoverView_Image]").size() > 0) { item.setCover(getCoverUrl(doc.select("img[id$=CoverView_Image]").first())); } // ID item.setId(doc.select("input[id$=regionmednr]").val()); // Description if (doc.select("span[id$=ucCatalogueContent_LblAnnotation]").size() > 0) { String name = doc.select("span[id$=lblCatalogueContent]").text(); String value = doc.select("span[id$=ucCatalogueContent_LblAnnotation]").text(); item.addDetail(new Detail(name, value)); } // Details for (Element detail : doc.select("div[id$=CatalogueDetailView] .spacingBottomSmall:has(span+span)")) { String name = detail.select("span").get(0).text().replace(": ", ""); String value = detail.select("span").get(1).text(); item.addDetail(new Detail(name, value)); } // Copies Element table = doc.select("table[id$=grdViewMediumCopies]").first(); Elements trs = table.select("tr"); List<String> columnmap = new ArrayList<>(); for (Element th : trs.first().select("th")) { columnmap.add(getCopyColumnKey(th.text())); } DateTimeFormatter fmt = DateTimeFormat.forPattern("dd.MM.yyyy").withLocale(Locale.GERMAN); for (int i = 1; i < trs.size(); i++) { Elements tds = trs.get(i).select("td"); Copy copy = new Copy(); for (int j = 0; j < tds.size(); j++) { if (columnmap.get(j) == null) continue; String text = tds.get(j).text().replace("\u00a0", ""); if (text.equals("")) continue; copy.set(columnmap.get(j), text, fmt); } item.addCopy(copy); } return item; }
From source file:de.geeksfactory.opacclient.apis.Zones22.java
private SearchRequestResult parse_search(String html, int page) throws OpacErrorException { Document doc = Jsoup.parse(html); doc.setBaseUri(opac_url + "/APS_PRESENT_BIB"); if (doc.select("#ErrorAdviceRow").size() > 0) { throw new OpacErrorException(doc.select("#ErrorAdviceRow").text().trim()); }/*from w w w.j a v a 2 s .c om*/ int results_total = -1; if (doc.select(".searchHits").size() > 0) { results_total = Integer.parseInt( doc.select(".searchHits").first().text().trim().replaceAll(".*\\(([0-9]+)\\).*", "$1")); } if (doc.select(".pageNavLink").size() > 0) { searchobj = doc.select(".pageNavLink").first().attr("href").split("\\?")[0]; } Elements table = doc.select("#BrowseList > tbody > tr"); List<SearchResult> results = new ArrayList<SearchResult>(); for (int i = 0; i < table.size(); i++) { Element tr = table.get(i); SearchResult sr = new SearchResult(); String typetext = tr.select(".SummaryMaterialTypeField").text().replace("\n", " ").trim(); if (data.has("mediatypes")) { try { sr.setType(MediaType.valueOf(data.getJSONObject("mediatypes").getString(typetext))); } catch (JSONException e) { sr.setType(defaulttypes.get(typetext)); } catch (IllegalArgumentException e) { sr.setType(defaulttypes.get(typetext)); } } else { sr.setType(defaulttypes.get(typetext)); } if (tr.select(".SummaryImageCell img[id^=Bookcover]").size() > 0) { String imgUrl = tr.select(".SummaryImageCell img[id^=Bookcover]").first().attr("src"); sr.setCover(imgUrl); } String desc = ""; Elements children = tr.select(".SummaryDataCell tr, .SummaryDataCellStripe tr"); int childrennum = children.size(); boolean haslink = false; for (int ch = 0; ch < childrennum; ch++) { Element node = children.get(ch); if (node.select(".SummaryFieldLegend").text().equals("Titel")) { desc += "<b>" + node.select(".SummaryFieldData").text().trim() + "</b><br />"; } else if (node.select(".SummaryFieldLegend").text().equals("Verfasser") || node.select(".SummaryFieldLegend").text().equals("Jahr")) { desc += node.select(".SummaryFieldData").text().trim() + "<br />"; } if (node.select(".SummaryFieldData a.SummaryFieldLink").size() > 0 && haslink == false) { String href = node.select(".SummaryFieldData a.SummaryFieldLink").attr("abs:href"); Map<String, String> hrefq = getQueryParamsFirst(href); sr.setId(hrefq.get("no")); haslink = true; } } if (desc.endsWith("<br />")) desc = desc.substring(0, desc.length() - 6); sr.setInnerhtml(desc); sr.setNr(i); results.add(sr); } return new SearchRequestResult(results, results_total, page); }
From source file:de.geeksfactory.opacclient.apis.Zones22.java
private DetailledItem parse_result(String id, String html) throws IOException { Document doc = Jsoup.parse(html); DetailledItem result = new DetailledItem(); result.setTitle(""); boolean title_is_set = false; result.setId(id);/* ww w . ja v a2 s. co m*/ Elements detaildiv = doc.select("div.record-item-new"); Elements detailtrs1 = doc.select(".DetailDataCell table table:not(.inRecordHeader) tr"); for (int i = 0; i < detailtrs1.size(); i++) { Element tr = detailtrs1.get(i); int s = tr.children().size(); if (tr.child(0).text().trim().equals("Titel") && !title_is_set) { result.setTitle(tr.child(s - 1).text().trim()); title_is_set = true; } else if (s > 1) { Element valchild = tr.child(s - 1); if (valchild.select("table").isEmpty()) { String val = valchild.text().trim(); if (val.length() > 0) result.addDetail(new Detail(tr.child(0).text().trim(), val)); } } } for (Element a : doc.select("a.SummaryActionLink")) { if (a.text().contains("Vormerken")) { result.setReservable(true); result.setReservation_info(a.attr("href")); } } if (!detaildiv.isEmpty()) { for (int i = 0; i < detaildiv.size(); i++) { Element dd = detaildiv.get(i); String text = ""; for (Node node : dd.childNodes()) { if (node instanceof TextNode) { String snip = ((TextNode) node).text(); if (snip.length() > 0) text += snip; } else if (node instanceof Element) { if (((Element) node).tagName().equals("br")) text += "\n"; else { String snip = ((Element) node).text().trim(); if (snip.length() > 0) text += snip; } } } result.addDetail(new Detail("", text)); } } if (doc.select("span.z3988").size() > 0) { // Sometimes there is a <span class="Z3988"> item which provides // data in a standardized format. String z3988data = doc.select("span.z3988").first().attr("title").trim(); for (String pair : z3988data.split("\\&")) { String[] nv = pair.split("=", 2); if (nv.length == 2) { if (!nv[1].trim().equals("")) { if (nv[0].equals("rft.btitle") && result.getTitle().length() == 0) { result.setTitle(nv[1]); } else if (nv[0].equals("rft.atitle") && result.getTitle().length() == 0) { result.setTitle(nv[1]); } else if (nv[0].equals("rft.au")) { result.addDetail(new Detail("Author", nv[1])); } } } } } Elements copydivs = doc.select(".DetailDataCell div[id^=stock_]"); String pop = ""; for (int i = 0; i < copydivs.size(); i++) { Element div = copydivs.get(i); if (div.attr("id").startsWith("stock_head")) { pop = div.text().trim(); continue; } Map<String, String> copy = new HashMap<String, String>(); // This is getting very ugly - check if it is valid for libraries // which are not // Hamburg. int j = 0; for (Node node : div.childNodes()) { try { if (node instanceof Element) { if (((Element) node).tag().getName().equals("br")) { copy.put(DetailledItem.KEY_COPY_BRANCH, pop); result.addCopy(copy); j = -1; } else if (((Element) node).tag().getName().equals("b") && j == 1) { copy.put(DetailledItem.KEY_COPY_LOCATION, ((Element) node).text()); } else if (((Element) node).tag().getName().equals("b") && j > 1) { copy.put(DetailledItem.KEY_COPY_STATUS, ((Element) node).text()); } j++; } else if (node instanceof TextNode) { if (j == 0) copy.put(DetailledItem.KEY_COPY_DEPARTMENT, ((TextNode) node).text()); if (j == 2) copy.put(DetailledItem.KEY_COPY_BARCODE, ((TextNode) node).getWholeText().trim().split("\n")[0].trim()); if (j == 6) { String text = ((TextNode) node).text().trim(); copy.put(DetailledItem.KEY_COPY_RETURN, text.substring(text.length() - 10)); } j++; } } catch (Exception e) { e.printStackTrace(); } } } return result; }
From source file:me.vertretungsplan.parser.UntisCommonParser.java
SubstitutionScheduleDay parseMonitorDay(Element doc, JSONObject data) throws JSONException, CredentialInvalidException { SubstitutionScheduleDay day = new SubstitutionScheduleDay(); String date = doc.select(".mon_title").first().text().replaceAll(" \\(Seite \\d+ / \\d+\\)", ""); day.setDateString(date);//w w w . ja va 2 s .c o m day.setDate(ParserUtils.parseDate(date)); if (!scheduleData.getData().has(PARAM_LAST_CHANGE_SELECTOR)) { String lastChange = findLastChange(doc, scheduleData); day.setLastChangeString(lastChange); day.setLastChange(ParserUtils.parseDateTime(lastChange)); } // NACHRICHTEN if (doc.select("table.info").size() > 0) { parseMessages(doc.select("table.info").first(), day); } // VERTRETUNGSPLAN if (doc.select("table:has(tr.list)").size() > 0) { parseSubstitutionScheduleTable(doc.select("table:has(tr.list)").first(), data, day); } return day; }
From source file:cw.kop.autobackground.files.DownloadThread.java
private void downloadPicasa(String data, Source source) { if (isInterrupted()) { return;/*from ww w .java2 s .com*/ } if (data.contains("user/")) { data = data.substring(data.indexOf("user/")); } else { return; } HttpGet httpGet = new HttpGet("https://picasaweb.google.com/data/feed/api/" + data + "?imgmax=d"); httpGet.setHeader("Authorization", "OAuth " + AppSettings.getGoogleAccountToken()); httpGet.setHeader("X-GData-Client", ApiKeys.PICASA_CLIENT_ID); httpGet.setHeader("GData-Version", "2"); String response = getResponse(httpGet); if (response == null) { return; } Document linkDoc = Jsoup.parse(response); List<String> imageList = new ArrayList<>(); for (Element link : linkDoc.select("media|group")) { imageList.add(link.select("media|content").attr("url")); } startDownload(imageList, imageList, source); }
From source file:com.dajodi.scandic.JSoupScraper.java
@Override public MemberInfo scrapeMemberInfo(InputStream inStream) { Document doc;/*from w w w. j ava 2 s . c om*/ try { doc = Jsoup.parse(inStream, HTTP.UTF_8, ""); Element accountOverview = doc.getElementById("AccountOverview"); String points = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_totalPoints", "?"); String membershipNumber = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_membershipNo", "?"); String membershipLevel = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_memberLevel", "?"); String nights = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_strngNights", "?"); int qualNights = Util.UNKNOWN_NIGHTS; if ("?".equals(nights)) { boolean noTransactions = accountOverview .select("#ctl00_MainBodyRegion_AccountOverview1_NoTransaction").size() == 1; if (noTransactions) { // as expected qualNights = Util.NO_NIGHTS; } else { Log.d("somethign really strange, number of nights could not be found"); } } else { qualNights = Util.parseNumNights(nights); } MemberInfo.Level level = MemberInfo.Level.fromEnglishText(membershipLevel); List<ScandicStay> stays = getStays(accountOverview); MemberInfo memberInfo = new MemberInfo(); memberInfo.setMembershipId(membershipNumber); memberInfo.setLevel(level); memberInfo.setPoints(Util.parseInt(points, Util.UNKNOWN_POINTS)); memberInfo.setQualifyingNights(qualNights); memberInfo.setStaysLast12Months(stays); memberInfo.setLastUpdated(new Date()); return memberInfo; } catch (IOException e) { throw new ScandicHtmlException(e); } }
From source file:com.aestasit.markdown.slidery.converters.TextTemplateConverter.java
private void renderSyntaxHighlightingHtml(final Document slidesDocument, final Configuration config) { for (Element code : slidesDocument.select("code")) { Charset encoding = config.getInputEncoding(); ByteArrayInputStream input = new ByteArrayInputStream(code.text().getBytes(encoding)); ByteArrayOutputStream out = new ByteArrayOutputStream(); String className = code.className(); if (StringUtils.isBlank(className)) { className = "java"; }/*w w w . j a va 2 s. c o m*/ Renderer renderer = XhtmlRendererFactory.getRenderer(className); if (renderer != null) { try { renderer.highlight("slidery", input, out, encoding.name(), true); code.html(new String(out.toByteArray(), encoding)); code.select("br").remove(); removeComments(code); code.html(code.html().trim()); Element parent = code.parent(); if (parent.tagName() == "pre") { parent.addClass("code"); } } catch (IOException e) { // TODO: Handle exception } } } }
From source file:me.vertretungsplan.parser.UntisCommonParser.java
void parseMultipleMonitorDays(SubstitutionSchedule v, Document doc, JSONObject data) throws JSONException, CredentialInvalidException { if (doc.select(".mon_head").size() > 1) { for (int j = 0; j < doc.select(".mon_head").size(); j++) { Document doc2 = Document.createShell(doc.baseUri()); doc2.body().appendChild(doc.select(".mon_head").get(j).clone()); Element next = doc.select(".mon_head").get(j).nextElementSibling(); if (next != null && next.tagName().equals("center")) { doc2.body().appendChild(next.select(".mon_title").first().clone()); if (next.select("table:has(tr.list)").size() > 0) { doc2.body().appendChild(next.select("table:has(tr.list)").first()); }/*w w w . j av a 2s . c om*/ if (next.select("table.info").size() > 0) { doc2.body().appendChild(next.select("table.info").first()); } } else if (doc.select(".mon_title").size() - 1 >= j) { doc2.body().appendChild(doc.select(".mon_title").get(j).clone()); doc2.body().appendChild(doc.select("table:has(tr.list)").get(j).clone()); } else { continue; } SubstitutionScheduleDay day = parseMonitorDay(doc2, data); v.addDay(day); } } else if (doc.select(".mon_title").size() > 1) { for (int j = 0; j < doc.select(".mon_title").size(); j++) { Document doc2 = Document.createShell(doc.baseUri()); doc2.body().appendChild(doc.select(".mon_title").get(j).clone()); Element next = doc.select(".mon_title").get(j).nextElementSibling(); while (next != null && !next.tagName().equals("center")) { doc2.body().appendChild(next); next = doc.select(".mon_title").get(j).nextElementSibling(); } SubstitutionScheduleDay day = parseMonitorDay(doc2, data); v.addDay(day); } } else { SubstitutionScheduleDay day = parseMonitorDay(doc, data); v.addDay(day); } }