private Selector compileSelector() { switch (expressionType) { case Css: if (expressionParams.length >= 1) { return $(expressionValue, expressionParams[0]); } else { return $(expressionValue); } case XPath: return xpath(expressionValue); case Regex: if (expressionParams.length >= 1) { return regex(expressionValue, Integer.parseInt(expressionParams[0])); } else { return regex(expressionValue); } case JsonPath: return new JsonPathSelector(expressionValue); default: return xpath(expressionValue); } }
@Override public Selectable smartContent() { SmartContentSelector smartContentSelector = Selectors.smartContent(); return select(smartContentSelector, getSourceTexts()); }
@Override public Selectable xpath(String xpath) { XpathSelector xpathSelector = Selectors.xpath(xpath); return selectElements(xpathSelector); }
@Override public Selectable $(String selector, String attrName) { CssSelector cssSelector = Selectors.$(selector, attrName); return selectElements(cssSelector); }
@Override public Selectable regex(String regex, int group) { RegexSelector regexSelector = Selectors.regex(regex, group); return selectList(regexSelector, getSourceTexts()); }
private void processCountry(Page page) { List<String> provinces = page.getHtml().xpath("//*[@id=\"newAlexa\"]/table/tbody/tr/td").all(); for (String province : provinces) { String link = xpath("//@href").select(province); String title = xpath("/text()").select(province); Request request = new Request(link).setPriority(0).putExtra("province", title); page.addTargetRequest(request); } }
@Override public Selectable $(String selector) { CssSelector cssSelector = Selectors.$(selector); return selectElements(cssSelector); }
@Override public Selectable regex(String regex) { RegexSelector regexSelector = Selectors.regex(regex); return selectList(regexSelector, getSourceTexts()); }
@Override public Selectable xpath(String xpath) { XpathSelector xpathSelector = Selectors.xpath(xpath); return selectElements(xpathSelector); }
@Override public Selectable $(String selector, String attrName) { CssSelector cssSelector = Selectors.$(selector, attrName); return selectElements(cssSelector); }
@Override public Selectable regex(String regex) { RegexSelector regexSelector = Selectors.regex(regex); return selectList(regexSelector, getSourceTexts()); }
@Override public Selectable smartContent() { SmartContentSelector smartContentSelector = Selectors.smartContent(); return select(smartContentSelector, getSourceTexts()); }
private void processCountry(Page page) { List<String> provinces = page.getHtml().xpath("//*[@id=\"newAlexa\"]/table/tbody/tr/td").all(); for (String province : provinces) { String link = xpath("//@href").select(province); String title = xpath("/text()").select(province); Request request = new Request(link).setPriority(0).putExtra("province", title); page.addTargetRequest(request); } }
@Override public Selectable $(String selector) { CssSelector cssSelector = Selectors.$(selector); return selectElements(cssSelector); }
@Override public Selectable regex(String regex, int group) { RegexSelector regexSelector = Selectors.regex(regex, group); return selectList(regexSelector, getSourceTexts()); }