webMagic
是一个非常不错的开发框架。简单易学,只要会java就可以很轻松上手;
首先我先分享一下我学习时所使用资料:
1、http://webmagic.io/(非常好的文档,里面的代码都可以跑,而且还在更新,建议收藏)
2、http://juvenshun.iteye.com/blog/269094(介绍maven建议先装好)
3、http://my.oschina.net/huangyong/blog/200075(介绍git的)
关于编译器:
推荐大家用idea;非常好用(idea+maven+git会极大地减少你的开发时间)
我将网上的文档整理了一下。大家可以看看,希望对大家有用哦
WebMagic由四个组件(Downloader、PageProcessor、Scheduler、Pipeline)
1.Downloader
Downloader负责从互联网上下载页面.
2.PageProcessor
PageProcessor负责解析页面,抽取有用信息,以及发现新的链接。
3.Scheduler
Scheduler负责管理待抓取的URL,以及一些去重的工作。
4.Pipeline
Pipeline负责抽取结果的处理,包括计算、持久化到文件、数据库。
1.2.2 用于数据流转的对象
1. Request
Request是对URL地址的一层封装,一个Request对应一个URL地址。
2. Page
Page代表了从Downloader下载到的一个页面——可能是HTML。
3. ReusltItems
ReusltItems相当于一个Map,它保存PageProcessor处理的结果,供Pipeline使用。
1.2.3 控制爬虫运转的引擎--Spider
Downloader、PageProcessor、Scheduler、Pipeline都是Spider的一个属性
Spider是WebMagic内部流程的核心。
包括:它封装了爬虫的创建、启动、停止、多线程等功能。
1.2.4 快速上手
一般来说,对于编写一个爬虫,PageProcessor是需要编写的部分,而Spider则是创建和控制爬虫的入口。
项目组成
1.3.1 主要部分
webmagic-core
webmagic-core是WebMagic核心部分,只包含爬虫基本模块和基本抽取器。
webmagic-extension
webmagic-extension是WebMagic的主要扩展模块,提供一些更方便的编写爬虫的工具。
快速开始
2.1 使用Maven
WebMagic基于Maven进行构建,推荐使用Maven来安装WebMagic。
3.1 下载源码
WebMagic目前有两个仓库:
· https://github.com/code4craft/webmagic
github上的仓库保存最新版本
· http://git.oschina.net/flashsword20/webmagic
此仓库包含所有编译好的依赖包,只保存项目的稳定版本;
无论在哪个仓库,使用
git clone https://github.com/code4craft/webmagic.git
或
git clone http://git.oschina.net/flashsword20/webmagic.git
即可下载最新代码。
TargetUrl中的自定义正则表达式
这里我们使用的是正则表达式来规定URL范围。可能细心的朋友,会知道.是正则表达式的保留字符,那么这里是不是写错了呢?其实是这里为了方便,WebMagic自己定制的适合URL的正则表达式,主要由两点改动:
· 将URL中常用的字符.默认做了转义,变成了\.
· 将"*"替换成了".*",直接使用可表示通配符。
例如,https://github.com/*在这里是一个合法的表达式,它表示https://github.com/下的所有URL。
在WebMagic中,从TargetUrl页面得到的URL,只要符合TargetUrl的格式,也是会被下载的。所以即使不指定HelpUrl也是可以的——例如某些博客页总会有“下一篇”链接,这种情况下无需指定HelpUrl。
Pileline
Pileline是抽取结束后,进行处理的部分,它主要用于抽取结果的保存,也可以定制Pileline可以实现一些通用的功能。
代码实例
新建工程:
下一步:
1、2项为必填,可以自定义;
GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupID就是填com.leafive.test这样子。
项目生成后,目录结构为:
Java_s为自己创建的;新建项目时,resources目录需要自己建(竟然没有自动生成)
我们在java下新建一个package(java_s),接着新建一个类;把代码写上;
package java_s;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.model.ConsolePageModelPipeline;
import us.codecraft.webmagic.model.OOSpider;
import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.model.annotation.ExtractByUrl;
import us.codecraft.webmagic.model.annotation.HelpUrl;
import us.codecraft.webmagic.model.annotation.TargetUrl;
@TargetUrl("https://github.com/\\w+/\\w+")
@HelpUrl("https://github.com/\\w+")
public class GithubRepo {
@ExtractBy(value = "//h1[@class='entry-title public']/strong/a/text()", notNull = true)
private String name;
@ExtractByUrl("https://github\\.com/(\\w+)/.*")
private String author;
@ExtractBy("//div[@id='readme']/tidyText()")
private String readme;
public static void main(String[] args) {
OOSpider.create(Site.me().setSleepTime(1000)
, new ConsolePageModelPipeline(), GithubRepo.class)
.addUrl("https://github.com/code4craft").thread(5).run();
}
}
当然,还有pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spider_Demo</groupId>
<artifactId>spider_Demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.5.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
这里我们使用了webmagic包:
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.5.1</version>
如果需要引用其他的包,需要在网上搜索他的groupid、artfactid和version。
最后单击工程右键——maven——reimport等它import结束就可以了
单机class右键选择run即可;
问题:
出现错误:有些包没导入;
解决方法:选中报错字段,出现蓝色提示框后安Alt+Enter,编译器自动import
<!--EndFragment-->
相关推荐
Spring Boot 整合爬虫框架WebMagic并存储数据到数据库是一项常见的数据抓取与处理任务。WebMagic是一个轻量级的Java爬虫框架,而Spring Boot则是流行的微服务开发框架,两者结合能方便地构建高效稳定的爬虫服务。...
反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等...
【标题】: "基于WebMagic的可配置爬虫" 指的是使用WebMagic这个开源Java爬虫框架来创建一个可以灵活配置的网络爬虫项目。WebMagic是一个轻量级、模块化的爬虫框架,它使得开发者能够快速构建自己的网络爬虫应用。 ...
webmagic:一个可扩展的Java爬虫框架,架构类似Python的Scrapy。
# 基于SSM框架和WebMagic的豆瓣电子书爬虫系统 ## 项目简介 本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和WebMagic爬虫框架的豆瓣电子书爬虫系统。项目的主要目的是从豆瓣网站爬取电子书的相关信息,并...
WebMagic是一个开源的Java爬虫框架,专为高效、易用和可扩展性而设计。在深入了解WebMagic之前,我们先来谈谈爬虫的基本概念。爬虫,也称为网络爬虫或网页蜘蛛,是一种自动抓取互联网信息的程序。它们通过模拟用户...
WebMagic是一个专为Java开发者设计的爬虫框架,版本号为v0.7.2。这个框架具有高度的模块化,使得开发人员可以方便地构建自己的网络数据抓取项目。在深入探讨WebMagic之前,先要理解爬虫的基本概念:爬虫是一种自动化...
WebMagic是一个用Java编写的开放源代码爬虫框架,它为开发者提供了强大的工具来抓取网页内容并进行处理。这个框架的设计目标是简化网络爬虫的开发过程,使得程序员能够快速构建自己的爬虫项目,而不需要过于关注底层...
WebMagic是一个开源的Java爬虫框架,其设计目标是简化网页抓取的复杂度,让开发者可以更加专注于数据提取和业务逻辑。这个压缩包中包含了WebMagic的源代码,可以帮助我们深入了解其工作原理和实现机制。 WebMagic的...
webmagicx是一款可配置爬虫框架,webmagicx中的webmagic表示该框架扩展于webmagic,x表示该框架是一个基于xml的配置型爬虫框架。无需写任何代码,只需你熟悉正则表达式和xpath,通过简单的配置便可实现一个爬虫。...
基于WebMagic开发的完整的分布式爬虫框架,该框架特点如下: 1、完全分布式:由管理端(Admin)、调度端(Master)和多个Worker组成,各个组件通过Http协议通信。 2、完全配置化:通过Admin端的页面配置规则就可以...
webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发 webmagic的核心 webmagic的主要特色: 完全模块化的设计,强大的可扩展性。 核心简单但是涵盖爬虫的全部流程,灵活...
Java爬虫项目是利用编程语言来自动化收集互联网信息的一种技术,WebMagic是一个开源的Java爬虫框架,专注于简单、快速地实现网页数据抓取。在这个项目中,我们主要探讨WebMagic的源码以及如何利用Java进行爬虫开发。...
本项目是基于Java的WebMagic爬虫框架设计源码,包含291个文件,其中主要包含233个java源代码文件,18个xml配置文件等。系统采用了Java、HTML、JavaScript、Ruby、Python、Shell和Kotlin技术,实现了WebMagic爬虫框架...
webporter 是一个基于垂直爬虫框架 webmagic 的 Java 爬虫应用,旨在提供一套完整的数据爬取,持久化存储和可视化展示的实践样例。 webporter 寓意“我们不生产数据,我们只是互联网的搬运工~” 如果觉得不错,请...
Java爬虫框架WebMagic是一个强大的、模块化设计的开源爬虫框架,专为简化网络爬虫的开发而设计。在本文中,我们将深入探讨WebMagic的核心概念、主要组件、使用方法以及如何通过示例项目spider_demo来实现一个简单的...
在本项目中,我们探讨了如何使用Spring Boot和WebMagic框架构建一个Java爬虫系统。Spring Boot是Java领域中一个非常流行的微服务框架,它简化了应用开发过程,提供了自动配置、内嵌式Web服务器等功能。而WebMagic则...