View Javadoc
1   package us.codecraft.webmagic.selector;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import org.apache.commons.lang3.StringUtils;
7   import org.jsoup.nodes.Element;
8   import org.jsoup.select.Elements;
9   
10  /**
11   * Links selector based on jsoup. Use absolute url. <br>
12   *
13   * @author code4crafter@gmail.com <br>
14   * @since 0.7.0
15   */
16  public class LinksSelector extends BaseElementSelector {
17  
18      @Override
19      public String select(Element element) {
20          throw new UnsupportedOperationException();
21      }
22  
23      @Override
24      public List<String> selectList(Element element) {
25          Elements elements = element.select("a");
26          List<String> links = new ArrayList<>(elements.size());
27          for (Element element0 : elements) {
28              if (StringUtils.isNotBlank(element0.baseUri())) {
29                  links.add(element0.attr("abs:href"));
30              } else {
31                  links.add(element0.attr("href"));
32              }
33          }
34          return links;
35      }
36  
37      @Override
38      public Element selectElement(Element element) {
39          throw new UnsupportedOperationException();
40      }
41  
42      @Override
43      public List<Element> selectElements(Element element) {
44          throw new UnsupportedOperationException();
45      }
46  
47      @Override
48      public boolean hasAttribute() {
49          return true;
50      }
51  }