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

编程

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

通过风铃虫对象构建

        //创建一个提取规则

//该提取规则标识使用 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

源码

<br/><br/>

以上是 风铃虫入门教程快速创建风铃虫 的全部内容, 来源链接: utcz.com/z/511846.html

回到顶部