菜鸟要飞爬虫

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

2017-04-30  本文已影响96人  万总有点菜

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());
上一篇 下一篇

猜你喜欢

热点阅读