RequestUtils.java
package us.codecraft.webmagic.utils;
import us.codecraft.webmagic.Request;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author code4crafter@gmail.com
* Date: 2017/6/5
* Time: 下午4:58
*/
public abstract class RequestUtils {
private static Pattern p4Range = Pattern.compile("\\[(\\d+)\\-(\\d+)\\]");
public static List<Request> from(String exp){
Matcher matcher = p4Range.matcher(exp);
if (!matcher.find()) {
return Collections.singletonList(new Request(exp));
}
int rangeFrom = Integer.parseInt(matcher.group(1));
int rangeTo = Integer.parseInt(matcher.group(2));
if (rangeFrom > rangeTo) {
return Collections.emptyList();
}
List<Request> requests = new ArrayList<Request>(rangeTo - rangeFrom + 1);
for (int i = rangeFrom; i <= rangeTo; i++) {
requests.add(new Request(matcher.replaceAll(String.valueOf(i))));
}
return requests;
}
}