View Javadoc
1   package us.codecraft.webmagic.utils;
2   
3   import us.codecraft.webmagic.Request;
4   
5   import java.util.ArrayList;
6   import java.util.Collections;
7   import java.util.List;
8   import java.util.regex.Matcher;
9   import java.util.regex.Pattern;
10  
11  /**
12   * @author code4crafter@gmail.com
13   *         Date: 2017/6/5
14   *         Time: 下午4:58
15   */
16  public abstract class RequestUtils {
17  
18      private static Pattern p4Range = Pattern.compile("\\[(\\d+)\\-(\\d+)\\]");
19  
20      public static List<Request> from(String exp){
21          Matcher matcher = p4Range.matcher(exp);
22          if (!matcher.find()) {
23              return Collections.singletonList(new Request(exp));
24          }
25          int rangeFrom = Integer.parseInt(matcher.group(1));
26          int rangeTo = Integer.parseInt(matcher.group(2));
27          if (rangeFrom > rangeTo) {
28              return Collections.emptyList();
29          }
30          List<Request> requests = new ArrayList<Request>(rangeTo - rangeFrom + 1);
31          for (int i = rangeFrom; i <= rangeTo; i++) {
32              requests.add(new Request(matcher.replaceAll(String.valueOf(i))));
33          }
34          return requests;
35      }
36  
37  }