前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文入门网络爬虫WebMagic(附演示代码)

一文入门网络爬虫WebMagic(附演示代码)

作者头像
框架师
发布2019-10-30 16:23:21
8680
发布2019-10-30 16:23:21
举报
文章被收录于专栏:墨白的Java基地墨白的Java基地

引言:

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的执行流程

WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。

WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来,下图来自webmagic官网,因为是国人开发的框架,可以说是把执行流程解释的很清楚了

  • 入门webmagic

1:创建maven项目,导入坐标webmagic-core和webmagic-extension

代码语言:javascript
复制
    <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类(页面处理器)

代码语言:javascript
复制
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爬取指定网页内容

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 框架师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档