java爬虫框架哪个好_java爬虫框架的使用

article/2025/10/16 21:16:36

原标题:java爬虫框架的使用

9ae02b6db84472c42a71bd4c76acbbb3.png

随着互联网的发展,编程程序语言也开始被越来越多的人所掌握,但是自始至终,java语言一直是被使用范围最广的编程语言。今天,武汉中软国际主要给大家讲解的是java语言中的爬虫java框架结构是怎么使用和编写的。

消息的设计

在消息队列中,消息一共有四种类型。分别是url,page,result和自定义类型。在worker的程序中,可以通过messagequeue的四种方法(sendUrl, sendPage, sendResult, send)来插入消息。worker的downloader会处理url消息,processor会处理page消息,saver会处理result消息,freeman会处理所有的自定义的消息。我们所要做的工作,就是实现好worker中的这四个函数。

Worker接口的设计

JLiteSpider将整个的爬虫抓取流程抽象成四个部分,由四个接口来定义。分别是downloader,processor,saver和freeman。它们分别处理上述提到的四种消息。

你所需要做的是,实现这个接口,并将想要抓取的url链表返回。具体的实现细节,可以由你高度定制。

1. Downloader:

这部分实现的是页面下载的任务,将想要抓取的url链表,转化(下载后存储)为相应的页面数据链表。

接口设计如下:

public interface Downloader {

/**

* 下载url所指定的页面。

* @param url

* 收到的由消息队列传过来的消息

* @param mQueue

* 提供把消息发送到各个消息队列的方法

* @throws IOException

*/

public void download(Object url, Map mQueue) throws IOException;

}

你同样可以实现这个接口,具体的实现可由你自由定制,只要实现 download 函数。 url 是消息队列推送过来的消息,里面不一定是一条 url ,具体是什么内容,是由你当初传入消息队列时决定的。 mQueue 提供了消息发送到各个消息队列的方法,通过 mQueue.get("...") 选取消息队列,然后执行messagequeue的四种方法(sendUrl, sendPage, sendResult, send)来插入消息。

2. Processor:

Processor 是解析器的接口,这里会从网页的原始文件中提取出有用的信息。

接口设计:

public interface Processor{

/**

* 处理下载下来的页面源代码

* @param page

* 消息队列推送过来的页面源代码数据消息

* @param mQueue

* 提供把消息发送到各个消息队列的方法

* @throws IOException

*/

public void process(Object page, Map mQueue) throws IOException;

}

实现这个接口,完成对页面源码的解析处理。 page 是由消息队列推送过来的消息,具体格式同样是由你在传入时决定好的。 mQueue 使用同上。

3. Saver:

Saver 实现的是对解析得到结果的处理,可以将你解析后得到的数据存入数据库,文件等等。或者将url重新存入消息队列,实现迭代抓取。

接口的设计:

public interface Saver {

/**

* 处理最终解析得到的结果

* @param result

* 消息队列推送过来的结果消息

* @param mQueue

* 提供把消息发送到各个消息队列的方法

* @throws IOException

*/

public void save(Object result, Map mQueue) throws IOException;

}

通过实现这个接口,可以完成对结果的处理。你同样可以实现这个接口,具体的实现可由你自由定制,只要实现 download 函数。 result 是消息队列推送过来的结果消息,具体的格式是由你当初传入消息队列时决定的。 mQueue 的使用同上。

4. Freeman:

通过上述的三个流程,可以实现爬虫抓取的一个正常流程。但是 jlitespider 同样提供了自定义的功能,你可以完善,加强,改进甚至颠覆上述的抓取流程。 freeman就是一个处理自定义消息格式的接口,实现它就可以定义自己的格式,以至于定义自己的流程。

接口的设计:

public interface Freeman {

/**

* 自定义的处理函数

* @param key

* key为自定义的消息标记

* @param msg

* 消息队列推送的消息

* @param mQueue

* 提供把消息发送到各个消息队列的方法

* @throws IOException

*/

public void doSomeThing(String key, Object msg, Map mQueue) throws IOException;

}

通过实现 doSomeThing 函数,你就可以处理来自消息队列的自定义消息。 key 为消息的标记, msg 为消息的内容。同样,通过 mQueue 的 send 方法,可以实现向消息队列发送自定义消息的操作。(需要注意,自定义的消息标记不能为: url , page, result 。否则会被认为是 jlitespider 的保留消息,也就是由上述的三个接口函数来处理。)

总结说明

jlitespider 的设计可能会让您有些疑惑,不过等您熟悉这一整套的设计之后,您就会发现 jlitespider 是多么的灵活和易于使用。

责任编辑:


http://chatgpt.dhexx.cn/article/8LvdQZMw.shtml

相关文章

Java爬虫框架WebMagic

WebMagic的架构设计参照了Scrapy,而实现则应用了HttpClient、Jsoup等Java成熟的工具。 WebMagic由四个组件(Downloader、PageProcessor、Scheduler、Pipeline)构成: Downloader : 下载器PageProcessor: 页面解析器Scheduler: 任务分配、url去重Pipelin…

Java爬虫框架之WebMagic的学习总结

Java爬虫框架之WebMagic WebMagic概述特性架构四大组件数据流转对象控制爬虫运转的引擎Spider WebMagic的基本使用添加WebMagic的核心与扩展依赖爬虫实现 爬虫的编写过程实现PageProcessor爬虫配置抽取页面元素链接的发现 Selectable抽取元素抽取部分API获取结果的API 使用Pipe…

Java爬虫(三)-- 爬虫框架WebMagic的使用(以csdn页面为例)

一、WebMagic介绍 WebMagic是当前比较主流的一款Java爬虫框架。WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现(这部分提供非常简单、灵活的API,在基本不改变开发模式的情况下,编写一个爬虫…

JAVA爬虫框架

WebMagic框架 webmagic结构分为Downloader,pageProcessor,Scheduler,pipeline四大组件 并由splider将他们组织起来 这四大组件对应着爬虫生命周期中的下载 处理 管理 和持久化等功能,依赖 <dependency><groupId>org.springframework.boot</groupId>&l…

一款非常牛逼的Java爬虫框架(高度灵活可配置)

点击关注公众号&#xff0c;利用碎片时间学习 介绍 平台以流程图的方式定义爬虫,是一个高度灵活可配置的爬虫平台 特性 支持Xpath/JsonPath/css选择器/正则提取/混搭提取支持JSON/XML/二进制格式支持多数据源、SQL select/selectInt/selectOne/insert/update/delete支持爬取JS动…

svn 图标不显示 window10

今天打开电脑&#xff0c;同步代码的时候&#xff0c;发现&#xff0c;所有的目录svn的图标都不显示了。 早在几年前遇到过一次&#xff0c;通过clear可以恢复&#xff0c;可是这次几次clear也不管用。 然后&#xff0c;果断打开svn的设置。找到图标的设定。 设定如下&#…

win10 SVN图标不显示 已解决

原因&#xff1a; SVN的图标的排位顺序排在下面去了&#xff0c;导致其它图标占用了它的位置&#xff0c;也就是需要把Tortoise的位置提到上面来 解决办法&#xff1a; winR&#xff0c;输入regedit进入注册表 ctrlf搜索ShellIconOverlayIdentifiers&#xff08;这里需要一会…

SVN文件夹不显示图标解决方法

从svn服务器上将文件夹导出到本地文件之后&#xff0c;svn相关文件夹没有显示相应的图标&#xff0c;解决方法如下。对于SVN来说&#xff0c;因为每个图标都代表着不同的含义&#xff0c;预示着不同的状态&#xff0c;是指示灯的作用&#xff0c;如果没有正确的图标很可能造成数…

win10 SVN 图标不显示的解决办法

win10 SVN 图标不显示的解决办法 前言一、进入注册表二、设置文件名三、重启四、检查五、原理 前言 项目关联到 SVN 之后&#xff0c;一般情况下会有各种各样的状态图标。用来标注本地与 SVN 版本异同情况。但是有时候看不到示意图标&#xff0c;今天记录一下解决办法。 一、…

svn图标没有显示的解决办法

解决办法&#xff1a; 1.打开注册表 键盘输入winr 运行&#xff0c;打开 regedit 2.修改注册表 打开注册表的如下路径&#xff0c;将前几个名字重命名&#xff0c;把名字前面的空格去掉&#xff0c;修改完成后&#xff0c;重启电脑即可。 \HKEY_LOCAL_MACHINE\SOFTWARE\Micr…

SVN、GIT图标不显示解决方案

1、WIN R打开 “运行”&#xff0c;输入"regedit"&#xff0c;打开注册表&#xff0c;然后复制下面的地址到地址栏&#xff0c;如下&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers如上图…

svn的图标突然不显示了

摘抄 https://www.jianshu.com/p/92e8e1f345c0 摘抄 https://www.jianshu.com/p/92e8e1f345c0 摘抄 https://www.jianshu.com/p/92e8e1f345c0 作者&#xff1a;易冷zzz 链接&#xff1a;https://www.jianshu.com/p/92e8e1f345c0 来源&#xff1a;简书 著作权归作者所有。商业转…

解决 win11 git svn 图标问题

不要怀疑&#xff0c;我尝试过网上各种修复方式&#xff0c;也下载过各种修复工具&#xff0c;然都失败了。 别迟疑&#xff0c;以下是最有效的方法&#xff1a; 1、winr&#xff0c;输入 regedit 打开注册表&#xff1b; 2、找到路径【计算机\HKEY_LOCAL_MACHINE\SOFTWARE\M…

Mac SnailSVN不显示状态图标

snailsvn 官网 依次打开 系统设置 -> 扩展 -> 查找程序调整优先级(优先级按降序排序)在我的扩展中没有找到排序功能, 就暂时禁用掉了 有关文件夹操作的拓展. (作者的描述: 如果有多个 Finder 扩展同时监视同一文件夹, 会有优先级问题, 只有最先出现的扩展才能添加图标…

SVN图标消失解决方案

1、首先打开注册表 WINR组合键打开运行窗口&#xff0c;输入regedit命令并回车 2、打开注册表窗口后然后找到以下目录&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers 3、将我们需要的文件前面加上空…

解决svn文件图标不显示

1.首先检查svn设置中是否设置图标显示 2.winR&#xff0c;输入regedit&#xff0c;调出注册表信息&#xff0c;按下CtrlF,在注册表里搜索“ShellIconOverlayIdentifiers”查看是否存在Tortoise文件&#xff0c;存在直接跳到第四步&#xff0c;不存在&#xff0c;进行第三步 3. …

【SVN】win10下SVN图标不显示

目录 一、现象 二、打开注册表 三、找到SVN路径 四、重启电脑 一、现象 windows10绿色ICON不显示 二、打开注册表 winR 打开运行&#xff0c;输入regedit 三、找到SVN路径 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdent…

svn服务器调整显示图标修改,svn图标不显示可以通过调整Tortoise图标名称的字母顺序来解决...

svn图标不显示可以通过调整Tortoise图标名称的字母顺序来解决 发布时间&#xff1a;2013-06-02 17:28:13 作者&#xff1a;佚名 我要评论 我们可以调整Tortoise图标名称的字母顺序&#xff0c;来提高Tortoise的优先位置&#xff0c;因为Windows 内部就是安装名称的字母顺序…

win10系统解决Svn图标不显示的问题

win10系统解决Svn图标不显示的问题 1.问题 刚才对ruoyi的文件进行了修改但是没有任何的修改的符号。我该如何恢复图标呢&#xff1f; 2.解决策略-修改注册表 出现问题的原因&#xff1a;图标名称优先级不够,不能被使用 第一步&#xff1a;winR&#xff0c;输入regedit 第二…

svn图标不显示

svn图标不显示解决方案 输入win r,在命令行内输入regedit&#xff0c; 如下&#xff1a; 点击确定后&#xff0c;会进入到注册表界面 红框中的就是svn对应状态的图标名字&#xff0c;由于此列表中的名字是按照首字母顺序排布的&#xff0c;所以SVN的图标有可能排在后面&…