java爬虫抓取动态网页(​WebMagic项目代码分为核心和扩展两部分(webmagic-core))

优采云 发布时间: 2022-03-26 14:20

  java爬虫抓取动态网页(​WebMagic项目代码分为核心和扩展两部分(webmagic-core))

  一、简介

  ​ webmagic是一个爬虫框架,无需配置,方便二次开发。它提供了简单灵活的API,只需少量代码即可实现爬虫。webmagic采用完全模块化设计,功能覆盖爬虫全生命周期(链接提取、页面下载、内容提取、持久化),支持多线程爬取、分布式爬取,并支持自动重试、自定义UA/等功能饼干。

  二、概览

  ​ WebMagic 项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个简化的、模块化的爬虫实现,而扩展部分收录了一些方便实用的功能(比如用注解方式编写爬虫等)。

  WebMagic 的结构分为四个组件:Downloader、PageProcessor、Scheduler 和 Pipeline,Spider 将它们相互组织起来。这四个组件分别对应了爬虫生命周期中的下载、处理、管理和持久化的功能。Spider 组织这些组件,以便它们可以相互交互并处理执行。可以认为Spider是一个大容器,也是WebMagic逻辑的核心。

  WebMagic的整体架构图如下:

  

  2.1 WebMagic 的四个组成部分

  2.2 数据流对象

  2.3 控制爬虫的引擎——Spider

  ​ Spider 是 WebMagic 内部流程的核心。Downloader、PageProcessor、Scheduler 和 Pipeline 都是 Spider 的属性。这些属性可以自由设置,通过设置该属性可以实现不同的功能。Spider也是WebMagic操作的入口,封装了爬虫创建、启动、停止、多线程等功能。

  ​ 对于编写爬虫来说,PageProcessor是需要编写的部分,Spider是创建和控制爬虫的入口。

  2.4 WebMagic 项目构成

  WebMagic 项目代码由几个部分组成,在根目录中由不同的目录名称分隔。它们都是独立的 Maven 项目。

  WebMagic 主要包括两个已经被广泛使用和成熟的包:

  三、基本爬虫3.1 爬虫流程(参考上面的框架图)

  下载器-页面下载

  PageProcessor-页面分析和链接提取

  Webmagic 的选择器

  调度程序-URL 管理

  管道 - 离线处理和持久化

  3.2 使用 WebMagic 抓取壁纸网站

  ​ 首先介绍WebMagic的依赖,webmagic-core-{version}.jar和webmagic-extension-{version}.jar。在项目中添加这两个包的依赖即可使用WebMagic。

  将依赖jar包引入maven

  不使用maven的用户可以去下载最新的jar包。

  3.3 爬虫的实现实现PageProcessor接口

  爬虫配置

  private Site site = Site.me().setRetryTimes(3).setSleepTime(1000).setTimeOut(3000);

  编写爬虫代码

<p>package photo;

import us.codecraft.webmagic.Page;

import us.codecraft.webmagic.Site;

import us.codecraft.webmagic.Spider;

import us.codecraft.webmagic.processor.PageProcessor;

import java.io.FileNotFoundException;

import java.io.IOException;

public class GetPhoto implements PageProcessor {

// 设置参数

private Site site = Site.me().setRetryTimes(3).setSleepTime(1000).setTimeOut(3000);

/**

* 主方法启动爬虫

*/

public static void main(String[] args) {

// 这里只爬取第一页的壁纸,如果要爬取其他页数修改for循环参数即可

for (int i = 1; i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线