View Javadoc
1   package us.codecraft.webmagic.utils;
2   
3   import us.codecraft.webmagic.model.annotation.ExtractBy;
4   import us.codecraft.webmagic.selector.*;
5   
6   import java.util.ArrayList;
7   import java.util.List;
8   
9   /**
10   * Tools for annotation converting. <br>
11   *
12   * @author code4crafter@gmail.com <br>
13   * @since 0.2.1
14   */
15  public class ExtractorUtils {
16  
17      public static Selector getSelector(ExtractBy extractBy) {
18          String value = extractBy.value();
19          Selector selector;
20          switch (extractBy.type()) {
21              case Css:
22                  selector = new CssSelector(value);
23                  break;
24              case Regex:
25                  selector = new RegexSelector(value);
26                  break;
27              case XPath:
28                  selector = new XpathSelector(value);
29                  break;
30              case JsonPath:
31                  selector = new JsonPathSelector(value);
32                  break;
33              default:
34                  selector = new XpathSelector(value);
35          }
36          return selector;
37      }
38  
39      public static List<Selector> getSelectors(ExtractBy[] extractBies) {
40          List<Selector> selectors = new ArrayList<Selector>();
41          if (extractBies == null) {
42              return selectors;
43          }
44          for (ExtractBy extractBy : extractBies) {
45              selectors.add(getSelector(extractBy));
46          }
47          return selectors;
48      }
49  }