WebMagic(使用教程 博客 fendo):https://blog.youkuaiyun.com/u011781521/article/category/6489266
WebMagic 官网:http://webmagic.io/
package top.actim.spider.processer;
import com.sun.deploy.config.DefaultConfig;
import top.actim.spider.config.MyDefaultConfig;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.FilePipeline;
import us.codecraft.webmagic.pipeline.JsonFilePipeline;
import us.codecraft.webmagic.processor.PageProcessor;
public class DouBanUltraPageProcessor implements PageProcessor {
// 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等
private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
@Override
// process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑
public void process(Page page) {
// 部分二:定义如何抽取页面信息,并保存下来
page.putField("name", page.getHtml().xpath("//span[@property=\"v:itemreviewed\"]/text()").toString());
page.putField("summary", page.getHtml().xpath("//span[@property=\"v:summary\"]/text()").toString());
// 部分三:从页面发现后续的url地址来抓取
// page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
}
@Override
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new DouBanUltraPageProcessor())
//从"https://"开始抓
.addUrl("https://movie.douban.com/subject/3929463/")
//用json保存到json文件
.addPipeline(new JsonFilePipeline(MyDefaultConfig.cachePath))
//开启5个线程抓取
.thread(5)
//启动爬虫
.run();
}
}