webmagic小试牛刀

webmagic是java里头比较优秀的一个爬虫框架:

  • 使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup。
  • 默认使用了Apache HttpClient作为下载工具。

这里展示一下入门级使用。

maven

        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-core</artifactId>
            <version>0.7.3</version>
        </dependency>
        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-extension</artifactId>
            <version>0.7.3</version>
        </dependency>

启动类

public static void main(String[] args) {
    Spider.create(new GithubRepoPageProcessor())
            //从https://github.com/code4craft开始抓    
            .addUrl("https://github.com/code4craft")
            //设置Scheduler,使用Redis来管理URL队列
            .setScheduler(new RedisScheduler("localhost"))
            //设置Pipeline,将结果以json方式保存到文件
            .addPipeline(new JsonFilePipeline("D:\\data\\webmagic"))
            //开启5个线程同时执行
            .thread(5)
            //启动爬虫
            .run();
}

PageProcessor

核心的工作主要是自定义PageProcessor,比如

new PageProcessor() {

            @Override
            public void process(Page page) {
                List<String> links = page.getHtml()
                        .xpath("//table[@id='jrjthreadtable']//td/a/@href")
                        .regex("/msg,\\d+.*.html")
                        .all();
                System.out.println(links);
            }

            @Override
            public Site getSite() {
                return Site.me()
                        .setRetryTimes(3)
                        .setSleepTime(1000)
                        .setTimeOut(10000);
            }

这里使用了xpath的语法来选取,不熟悉xpath的话,可以使用chrome:检查-copy-copy xpath来学习。

doc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值