[Java爬虫-WebMagic]-02-获取网页源码

获取网页源码

程序入口Spider

Spider 一般写在Main方法里

它可以设置爬虫的配置,包括编码、抓取间隔、超时时间、重试次数等,也包括一些模拟的参数,例如User Agent、cookie,以及代理的设置

public static void main(String[] args) {
        //创建爬虫解析页面
        PageProcessor pageProcessor = new FirstWebmagic();
        //创建爬虫
        Spider spider = Spider.create(pageProcessor);
        //给爬虫添加爬取地址
        spider.addUrl("https://xiaoshuai.blog.csdn.net/");
        //启动一个线程
        spider.thread(1);
        //启动爬虫
        spider.run();
}

编写PageProcessor

在WebMagic里,实现一个基本的爬虫只需要编写一个类,实现PageProcessor接口即可。这个类基本上包含了抓取一个网站,你需要写的所有代码。

下面来看一下这个接口里面有什么

/** 负责解析页面,抽取有用信息,以及发现新的链接 **/
public interface PageProcessor {

    /**
     * 处理页面,提取要提取的 URL,提取数据和存储
     *
     * @param Page page 页面信息
     */
    public void process(Page page);

    /**
     * 获取设置信息
     *
     * @return site
     * @see Site
     */
    public Site getSite();
}

Site 配置信息

主要是设置 抓取网站的相关配置,包括编码、抓取间隔、重试次数等

这里我们在getSite()方法里写上

@Override
public Site getSite() {
    Site site = Site.me();//创建Site
    site.setTimeOut(1000);//设置超时
    site.setRetryTimes(3);//设置重试次数
    return site;
}

process 页面处理

process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑

所有抓取的信息都在这里

我们可以根据需要获取想要的结果

@Override
public void process(Page page) {
    //抓取到的页面为一个page对象
    Html html = page.getHtml();//我们从page里面获取Html信息
    System.out.println(html);//然后一个html源代码就输出到控制台了
}

一个完整的代码示例

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft.webmagic.selector.Html;

public class FirstWebmagic implements PageProcessor {

    @Override
    public void process(Page page) {
        //抓取到的页面为一个page对象
        Html html = page.getHtml();//我们从page里面获取Html信息
        System.out.println(html);//然后一个html源代码就输出到控制台了
    }

    @Override
    public Site getSite() {
        Site site = Site.me();//创建Site
        site.setTimeOut(1000);//设置超时
        site.setRetryTimes(3);//设置重试次数
        return site;
    }
    
    public static void main(String[] args) {
        //创建爬虫解析页面
        PageProcessor pageProcessor = new FirstWebmagic();
        //创建爬虫
        Spider spider = Spider.create(pageProcessor);
        //给爬虫添加爬取地址
        spider.addUrl("https://xiaoshuai.blog.csdn.net/");
        //启动一个线程
        spider.thread(1);
        //启动爬虫
        spider.run();

    }
}

在这里插入图片描述


上一篇[Java爬虫-WebMagic]-01-初识爬虫框架WebMagic

下一篇[Java爬虫-WebMagic]-03-解析Html源码

发布了45 篇原创文章 · 获赞 42 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_18604209/article/details/104208837