WebMagic学习(二)之Selectable抽取元素

Selectable 相关的抽取元素链式API 是WebMagic 的一个核心功能。在WebMagic 学习(一)的例子中可以看到,page.getHtml() 返回的是一个Html 对象,它实现了Selectable 接口。
Selectable 的接口代码如下:

package us.codecraft.webmagic.selector;

import java.util.List;
import us.codecraft.webmagic.selector.Selector;

public interface Selectable {
    Selectable xpath(String var1);

    Selectable $(String var1);

    Selectable $(String var1, String var2);

    Selectable css(String var1);

    Selectable css(String var1, String var2);

    Selectable smartContent();

    Selectable links();

    Selectable regex(String var1);

    Selectable regex(String var1, int var2);

    Selectable replace(String var1, String var2);

    String toString();

    String get();

    boolean match();

    List<String> all();

    Selectable jsonPath(String var1);

    Selectable select(Selector var1);

    Selectable selectList(Selector var1);

    List<Selectable> nodes();
}

API说明

方法 说明 示例
xpath(String xpath) 使用XPath选择 html.xpath("//div[@class='title']")
$(String selector) 使用Css选择器选择 html.$("div.title")
$(String selector,String attr) 使用Css选择器选 html.$("div.title","text")
css(String selector) 功能同$(),使用Css选择器选择 html.css("div.title")
links() 选择所有链接 html.links()
regex(String regex) 使用正则表达式抽取 html.regex("(.*?)")
regex(String regex,int group) 使用正则表达式抽取,并指定捕获组 html.regex("(.*?)",1)
replace(String regex, String replacement) 替换内容 html.replace("","")
get() 返回一条String类型的结果 String link= html.links().get()
toString() 功能同get(),返回一条String类型的结果 String link=html.links().toString()
all() 返回所有抽取结果 List links= html.links().all()
match() 是否有匹配结果 if (html.links().match()){ xxx; }

示例

获取页面的符合http://gank.io/2017/04/26 格式的所有链接

page.addTargetRequests(page.getHtml().links().regex("(http://gank\\.io/\\d+/\\d+/\\d+)").all());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • 我们之间奇妙与冷淡的关系 就像梦里面棉花糖甜腻的夜 就像电影里白色短裤上的血 你在需要我时扼住我的喉咙 你在厌倦我...
    mewcute阅读 504评论 2 1
  • 正在动笔中。
    Vinsonn阅读 186评论 0 0