引言:
hello,你们的墨白回来了,从这周开始,不出意外我会坚持两天一更新,关注我时间较久的小伙伴都知道,最近这段时间墨白在求职,上周才找到一家满意的新公司,所以前期要学习的东西很多,这段时间因为比较忙,更新的内容就比较少,给大家说声抱歉了,今天我们就用一文入门webmagic,这是一个由国人黄亿华开发的爬虫框架,码云和github都有源码,该框架已于两年前断更,这款框架作为Java的爬虫框架基本上已经涵盖了所有我们需要的功能,今天我们就来详细了解这款爬虫框架,webmagic我会分为两篇文章介绍,今天主要写webmagic的入门,明天会写一些爬取指定内容和一些特性介绍,下面请看正文;
简介:
网络爬虫(Web crawler) 也叫做网络机器人, 可以代替人们自动地在互联网中进行数据信息的采集与整理。 它是一种按照一定的规则, 自动地抓取万维网信息的程序或者脚本, 可以自动采集所有其能够访问到的页面内容, 以获取或更新这些网站的内容和检索方式。
爬虫分为两大类:
1、搜索引擎爬虫
2、"搬运工"爬虫【去别人网站爬取数据填充自己的网站】
作用:
1)可以实现搜索引擎
2)大数据时代, 可以让我们获取更多的数据源。
3)快速填充测试和运营数据【今天我们使用爬虫的目的】
4)为人工智能提供训练数据集
网络上有爬虫框架44款,随你喜欢,感兴趣的小伙伴可以百度一下,今天我们来玩Java的爬虫;
java中的爬虫技术:
1)底层技术
HttpClient+Jsoup
2)爬虫框架
Webmagic
官网:http://webmagic.io/
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来,下图来自webmagic官网,因为是国人开发的框架,可以说是把执行流程解释的很清楚了
1:创建maven项目,导入坐标webmagic-core和webmagic-extension
<dependencies>
<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>
</dependencies>
2:创建MyPageProcessor类(页面处理器)
package com.mobaijun;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
* @Author:Auser·杰
* @DATE:2019/10/20 20:37
* 页面处理器
*/
public class MyPageProcessor implements PageProcessor{
/**
* 解析网页内容
*/
@Override
public void process(Page page) {
//输出整个网页内容
System.out.println(page.getHtml().toString());
}
/**
* 设置爬取参数
*/
@Override
public Site getSite() {
return Site.me()
.setSleepTime(100)// 设置爬取间隔时间
.setTimeOut(3000)// 设置爬取超时时间
.setRetryTimes(3);// 设置重试次数
}
public static void main(String[] args) {
/**
* 入口
*/
Spider.create(new MyPageProcessor()).
addUrl("https://www.gaoding.com/koutu").start();
}
}
今天的内容就到这里了,明天详解WebMagic爬取指定网页内容