对webmagic总体构架的理解与代码分析——Spider篇

本文主要探讨webmagic的Spider类,它是webmagic框架的核心,整合了下载、处理、管理和持久化组件。Spider作为爬虫的入口,负责创建、启动、停止和多线程功能。文章通过代码分析解释PageProcessor在解析网页和发现新链接中的作用,并指出学习XPath的重要性。作者还分享了自己的学习过程和疑惑,鼓励读者一起探索webmagic。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不得不说webmagic是一个很优秀的爬虫框架,但是我要怎么做才能吃透它呢?我是爬虫初学者,我接下来要做的是将webmagic的代码梳理一遍,不知道我能不能将其整理好,并且灵活运用,举一反三呢。在这个过程中会遇到很多别的知识点,我会另外写博文,来总结其他我不会的东西,现在我要做的就是先分析webmagic的代码。(我自己的理解与分析会用黑色字体,而webmagic框架,黄亿华老师的东西,我会用其他颜色来标注上)

WebMagic的结构分为DownloaderPageProcessorSchedulerPipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。

既然webmagic的组件由Spider组织起来,那么我就直接从Spider入手吧。由于代码太多了,在这里面复制出来太多了,http://webmagic.io/  这是webmagic的连接,里面什么都有


控制爬虫运转的引擎Spider类:

Spider类给我的感觉是webmagic框架的大集合,将webmagic框架里面所有有用的东西都整合到这一个类里面了,所以黄亿华老师在文档中才会说到WebMagic的结构分为DownloaderPageProcessorSchedulerPipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。即,webmagic的入口就是Spider,要想实现一个爬虫程序,首先从Spider入手,结合下面的例子会更好的理解“Spider是爬虫的入口,它封装了爬虫的创建、启动、停止、多线程等功能。”!

代码1:

public static void main(String[] args) {
    Spider.create(new GithubRepoPageProcessor())                                 //1定义专门的PageProcessor
              
            .addUrl("https://github.com/code4craft")                             //2从https://github.com/code4craft开始抓 
            
            .setScheduler(new RedisScheduler("localhost"))                       //3设置Scheduler,使用Redis来管理URL队列
              
            .addPipeline(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值