风铃虫入门教程:快速创建风铃虫

2 篇文章 0 订阅
2 篇文章 0 订阅

风铃虫实例主要有以下两种构建方式

通过风铃虫对象构建

        //创建一个提取规则
        //该提取规则标识使用 XPATH提取器进行提取,XPATH的表达式为 //h1[@class='topic-_XJ6ViSR']/text() , 该提取提取器的作用顺序是0
        FieldExtractRule extractRule = new FieldExtractRule(Rule.XPATH, "//h1[@class='topic-_XJ6ViSR']/text()", "", 0);

        //创建一个提取项
        ContentItem contentItem = new ContentItem();
        contentItem
                .setFiledName("name") //提取项代码,不能为空
                .setName("新闻标题") //提取项名字,可以不设置
                .setRules(Arrays.asList(extractRule)); //设置提取规则

        //创建一个风铃虫实例
        CrawlerBuilder builder = CrawlerBuilder.create()
                .startUrl("https://news.ifeng.com/c/7sMchCLy5se") //风铃虫的起始链接
                // 风铃虫会将每次请求的网页的内容中的URL先全部提取出来,然后将完全匹配此规则的链接放入链接池,作为下次请求的种子链接。
                // 如果不设置则表示提取链接中所有包含域名关键字(例如此例中的ifeng)的链接放入链接池
                .addLinkRule("http[s]?://news\\.ifeng\\.com/.*")//链接提取规则,多可添加多个链接提取规则,
                //可以设置多个内容页的规则,多个内容页规则之间用半角逗号隔开
                //只要内容页URL中完全匹配此规则就进行内容提取,如果不设置标识提取域名下所有的链接
                .extractUrl("https://news\\.ifeng\\.com/c/[A-Za-z0-9]+") //内容页的规则,
                .addExtractItem(contentItem) //增加一个提取项,风铃虫可以设置多个提取项,这里为了演示只设置了一个提取项
                .interval(8);= CrawlerBuilder.create()
                .startUrl("https://news.ifeng.com/c/7sMchCLy5se") //风铃虫的起始链接
                // 风铃虫会将每次请求的网页的内容中的URL先全部提取出来,然后将完全匹配此规则的链接放入链接池,作为下次请求的种子链接。
                // 如果不设置则表示提取链接中所有包含域名关键字(例如此例中的ifeng)的链接放入链接池
                .addLinkRule("http[s]?://news\\.ifeng\\.com/.*")//链接提取规则,多可添加多个链接提取规则,
                //可以设置多个内容页的规则,多个内容页规则之间用半角逗号隔开
                //只要内容页URL中完全匹配此规则就进行内容提取,如果不设置标识提取域名下所有的链接
                .extractUrl("https://news\\.ifeng\\.com/c/[A-Za-z0-9]+") //内容页的规则,
                .addExtractItem(contentItem) //增加一个提取项,风铃虫可以设置多个提取项,这里为了演示只设置了一个提取项
                .interval(8);//每次进行爬取时的平均间隔时间,单位为秒,如果不设置则使用默认时间10秒,此值时为了防止抓取频率太高被服务器封杀
        //风铃虫规则信息
        CrawlerRule rule = builder.build();
        //构建一个简单的风铃虫实例
        Crawler crawler = Crawler.create(rule);

通过风铃虫构建器构建

//创建一个提取规则
        //该提取规则标识使用 XPATH提取器进行提取,XPATH的表达式为 //h1[@class='topic-_XJ6ViSR']/text() , 该提取提取器的作用顺序是0
        FieldExtractRule extractRule = new FieldExtractRule(Rule.XPATH, "//h1[@class='topic-_XJ6ViSR']/text()", "", 0);

        //创建一个提取项
        ContentItem contentItem = new ContentItem();
        contentItem
                .setFiledName("name") //提取项代码,不能为空
                .setName("新闻标题") //提取项名字,可以不设置
                .setRules(Arrays.asList(extractRule)); //设置提取规则

        //创建一个风铃虫实例
        CrawlerBuilder builder = CrawlerBuilder.create()
                .startUrl("https://news.ifeng.com/c/7sMchCLy5se") //风铃虫的起始链接
                // 风铃虫会将每次请求的网页的内容中的URL先全部提取出来,然后将完全匹配此规则的链接放入链接池,作为下次请求的种子链接。
                // 如果不设置则表示提取链接中所有包含域名关键字(例如此例中的ifeng)的链接放入链接池
                .addLinkRule("http[s]?://news\\.ifeng\\.com/.*")//链接提取规则,多可添加多个链接提取规则,
                //可以设置多个内容页的规则,多个内容页规则之间用半角逗号隔开
                //只要内容页URL中完全匹配此规则就进行内容提取,如果不设置标识提取域名下所有的链接
                .extractUrl("https://news\\.ifeng\\.com/c/[A-Za-z0-9]+") //内容页的规则,
                .addExtractItem(contentItem) //增加一个提取项,风铃虫可以设置多个提取项,这里为了演示只设置了一个提取项
                .interval(8);= CrawlerBuilder.create()
                .startUrl("https://news.ifeng.com/c/7sMchCLy5se") //风铃虫的起始链接
                // 风铃虫会将每次请求的网页的内容中的URL先全部提取出来,然后将完全匹配此规则的链接放入链接池,作为下次请求的种子链接。
                // 如果不设置则表示提取链接中所有包含域名关键字(例如此例中的ifeng)的链接放入链接池
                .addLinkRule("http[s]?://news\\.ifeng\\.com/.*")//链接提取规则,多可添加多个链接提取规则,
                //可以设置多个内容页的规则,多个内容页规则之间用半角逗号隔开
                //只要内容页URL中完全匹配此规则就进行内容提取,如果不设置标识提取域名下所有的链接
                .extractUrl("https://news\\.ifeng\\.com/c/[A-Za-z0-9]+") //内容页的规则,
                .addExtractItem(contentItem) //增加一个提取项,风铃虫可以设置多个提取项,这里为了演示只设置了一个提取项
                .interval(8);//每次进行爬取时的平均间隔时间,单位为秒,如果不设置则使用默认时间10秒,此值时为了防止抓取频率太高被服务器封杀
        
        
        //构建一个简单的风铃虫实例
        Crawler crawler = builder.creatCrawler();

无论是哪种构建方法,生成一个风铃虫的最基础的提供信息必须包含以下两种:

  • 风铃虫的起始链接
  • 至少一个内容提取项信息

在风铃虫启动成功后,每个风铃虫都会具有一个唯一的随机的名字,用于分辨风铃虫,获取方法如下

crawler.getName()

在风铃虫实例启动后,禁止进行修改属性的操作,否则可能会导致风铃虫运行异常

相关资源:

官方文档
在线API
源码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值