【Java】WebMagic实现的最基本的爬虫

WebMagic是一个十分容易入门的爬虫框架,并且扩展也十分容易。关于WebMagic,官网有十分详细的介绍,并且有教程和示例。

我这里只实现了十分基础的功能,可以用作入门了解的参考。

准备工作:

1.需要到官网下载相关的jar包,并且导入到工程中(导入的方法请自行了解~)

2.这里用的是xpath的搜索方法,相关语法等,需要简单了解

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

public class hi implements PageProcessor {
    // 抓取网站的相关配置,包括编码、抓取间隔、重试次数等
    private Site site = Site.me().setRetryTimes(3).setSleepTime(100);
    private static int count =0;

    @Override
    public Site getSite() {
        return site;
    }

    @Override
    public void process(Page page) {
        //判断链接是否符合     [a-z 0-9 -]*是任意数字字母
        if(!page.getUrl().regex("http://blog.csdn.net/zuoxiaolong8810/article/details/[a-z 0-9 -]*.html").match()){
          
            page.addTargetRequests(
                    page.getHtml().xpath("//*[@id=\"article_list\"]/div/div/h1/span/a/@href").all());//获取我需要的链接
            
            System.out.println("文章标题:"+ page.getHtml().xpath("/html/head/title/text()").get() );//输出需要的内容(这里我需要的是标题)
            count ++;
        }
        
        //把符合这个网址格式的,加入到爬取队列
        page.addTargetRequests(page.getHtml().links().regex("(http://blog.csdn.net/zuoxiaolong8810/article/list/[a-z 0-9 -]*)").all());
    }

    public static void main(String[] args) {
        long startTime, endTime;
        System.out.println("开始爬取...");
        startTime = System.currentTimeMillis();
        Spider.create(new hi()).addUrl("http://blog.csdn.net/zuoxiaolong8810/article/list/1").thread(5).run();//从这个网址开始获取
        endTime = System.currentTimeMillis();
        System.out.println("爬取结束,耗时约" + ((endTime - startTime) / 1000) + "秒,抓取了"+count+"条记录");
    }

}


xpath的值应该怎么填?

1.用chrome浏览器,对着需要获取的值,右键->检查,然后查看需要的内容

2.找到需要的内容后,右键->copy->xpath

3.之后可能需要自己再补充(比如:/@href




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值