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
11
12
13
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 }