1 package us.codecraft.webmagic.selector;
2
3 import org.jsoup.Jsoup;
4 import org.jsoup.nodes.Document;
5 import org.jsoup.nodes.Element;
6 import us.codecraft.webmagic.utils.BaseSelectorUtils;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11
12
13
14
15 public abstract class BaseElementSelector implements Selector, ElementSelector {
16 private Document parse(String text) {
17
18
19 text = BaseSelectorUtils.preParse(text);
20 return Jsoup.parse(text);
21 }
22
23 @Override
24 public String select(String text) {
25 if (text != null) {
26 return select(parse(text));
27 }
28 return null;
29 }
30
31 @Override
32 public List<String> selectList(String text) {
33 if (text != null) {
34 return selectList(parse(text));
35 } else {
36 return new ArrayList<String>();
37 }
38 }
39
40 public Element selectElement(String text) {
41 if (text != null) {
42 return selectElement(parse(text));
43 }
44 return null;
45 }
46
47 public List<Element> selectElements(String text) {
48 if (text != null) {
49 return selectElements(parse(text));
50 } else {
51 return new ArrayList<Element>();
52 }
53 }
54
55 public abstract Element selectElement(Element element);
56
57 public abstract List<Element> selectElements(Element element);
58
59 public abstract boolean hasAttribute();
60
61 }