不得不说webmagic是一个很优秀的爬虫框架,但是我要怎么做才能吃透它呢?我是爬虫初学者,我接下来要做的是将webmagic的代码梳理一遍,不知道我能不能将其整理好,并且灵活运用,举一反三呢。在这个过程中会遇到很多别的知识点,我会另外写博文,来总结其他我不会的东西,现在我要做的就是先分析webmagic的代码。(我自己的理解与分析会用黑色字体,而webmagic框架,黄亿华老师的东西,我会用其他颜色来标注上)
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。
既然webmagic的组件由Spider组织起来,那么我就直接从Spider入手吧。由于代码太多了,在这里面复制出来太多了,http://webmagic.io/ 这是webmagic的连接,里面什么都有
控制爬虫运转的引擎Spider类:
Spider类给我的感觉是webmagic框架的大集合,将webmagic框架里面所有有用的东西都整合到这一个类里面了,所以黄亿华老师在文档中才会说到WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由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(

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

被折叠的 条评论
为什么被折叠?



