WebMagic-入门

WebMagic-入门

WebMagic

介绍

WebMagic 是一个简单灵活的 Java 爬虫框架,基于流行的爬虫工具 Scrapy 的设计思想实现。它提供了爬虫开发的核心功能,并遵循"微内核+插件"的设计模式,使得开发者可以灵活扩展功能。

主要特点

  1. 简单易用:提供简洁的 API,只需少量代码即可实现一个功能强大的爬虫
  2. 模块化设计:核心框架小,通过扩展机制满足不同需求
  3. 强大的抽取功能:支持 XPath、正则表达式等多种方式提取数据
  4. 多线程支持:内置多线程支持,提高爬取效率
  5. 可扩展性:可以方便地扩展和定制各个组件

底层原理

HttpClient+Jsoup

在爬虫应用中,HttpClient和Jsoup通常协同工作:

  1. HttpClient负责网络通信层:发送HTTP请求、接收响应、处理重定向/认证等
  2. Jsoup负责内容解析层:将获取的HTML转换为DOM树,提供便捷的数据提取API
  3. 这种分层设计符合单一职责原则,使爬虫程序结构更清晰

WebMagic的执行过程

image-20250526150555062

代码案例

1.创建一个Maven项目,引入依赖

pom
 <dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-core</artifactId>
      <version>1.0.3</version>
    </dependency>

    <dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-extension</artifactId>
      <version>1.0.3</version>
    </dependency>

2.重写PageProcessor接口,爬去csdn主页的数据信息

运行输出结果如下: image-20250526155359357

获取爬虫数据

xpath

XPath(XML Path Language)是一种用于在XML和HTML文档中定位和选择节点的查询语言。它提供了一种在文档层次结构中导航的方式,类似于文件系统中的路径。

案例分析

示例1:获取所有文章标题

text
//article/h2/text()

结果:

  • "Article 1"
  • "Article 2"

示例2:获取第二篇文章的链接

xpath

text
(//article)[2]/a/@href

结果:

  • "/read-more/2"

示例3:获取包含"Content"文本的段落

xpath

text
//p[contains(text(), 'Content')]

{% label 注意:xpath的表达式看懂即可,不需要硬记,可通过粘贴复制的方式,如csdn官网,直接复制: red %}

image-20250526181335338

采集爬虫内容

上述粘贴的内容为://*@id="app"/div/div/aside/div/div2/div1/div/div1/div1/div2/div/a/div/div2/

实际输出结果: image-20250526182227686

Spring Ai-入门
在平凡中寻找真实的自我

评论区

评论加载中...