1 package us.codecraft.webmagic.selector; 2 3 import java.util.List; 4 5 /** 6 * Selectable text.<br> 7 * 8 * @author code4crafter@gmail.com <br> 9 * @since 0.1.0 10 */ 11 public interface Selectable { 12 13 /** 14 * select list with xpath 15 * 16 * @param xpath xpath 17 * @return new Selectable after extract 18 */ 19 public Selectable xpath(String xpath); 20 21 /** 22 * select list with css selector 23 * 24 * @param selector css selector expression 25 * @return new Selectable after extract 26 */ 27 public Selectable $(String selector); 28 29 /** 30 * select list with css selector 31 * 32 * @param selector css selector expression 33 * @param attrName attribute name of css selector 34 * @return new Selectable after extract 35 */ 36 public Selectable $(String selector, String attrName); 37 38 /** 39 * select list with css selector 40 * 41 * @param selector css selector expression 42 * @return new Selectable after extract 43 */ 44 public Selectable css(String selector); 45 46 /** 47 * select list with css selector 48 * 49 * @param selector css selector expression 50 * @param attrName attribute name of css selector 51 * @return new Selectable after extract 52 */ 53 public Selectable css(String selector, String attrName); 54 /** 55 * select all links 56 * 57 * @return all links 58 */ 59 public Selectable links(); 60 61 /** 62 * select list with regex, default group is group 1 63 * 64 * @param regex regex 65 * @return new Selectable after extract 66 */ 67 public Selectable regex(String regex); 68 69 /** 70 * select list with regex 71 * 72 * @param regex regex 73 * @param group group 74 * @return new Selectable after extract 75 */ 76 public Selectable regex(String regex, int group); 77 78 /** 79 * replace with regex 80 * 81 * @param regex regex 82 * @param replacement replacement 83 * @return new Selectable after extract 84 */ 85 public Selectable replace(String regex, String replacement); 86 87 /** 88 * single string result 89 * 90 * @return single string result 91 */ 92 public String toString(); 93 94 /** 95 * single string result 96 * 97 * @return single string result 98 */ 99 public String get(); 100 101 /** 102 * if result exist for select 103 * 104 * @return true if result exist 105 */ 106 public boolean match(); 107 108 /** 109 * multi string result 110 * 111 * @return multi string result 112 */ 113 public List<String> all(); 114 115 /** 116 * extract by JSON Path expression 117 * 118 * @param jsonPath jsonPath 119 * @return result 120 */ 121 public Selectable jsonPath(String jsonPath); 122 123 /** 124 * extract by custom selector 125 * 126 * @param selector selector 127 * @return result 128 */ 129 public Selectable select(Selector selector); 130 131 /** 132 * extract by custom selector 133 * 134 * @param selector selector 135 * @return result 136 */ 137 public Selectable selectList(Selector selector); 138 139 /** 140 * get all nodes 141 * @return result 142 */ 143 public List<Selectable> nodes(); 144 }