首页 > 编程知识 正文

java爬虫技术有哪些,通用的爬虫架构

时间:2023-05-03 15:55:12 阅读:59857 作者:1090

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

随着互联网的发展,编程语言也开始被越来越多的人掌握,但自始至终,java语言都是应用最广泛的编程语言。 今天,武汉中软国际主要讲述如何使用和编写java语言爬虫java框架结构。

消息设计

消息队列中的消息有四种类型。 url、page、result和自定义类型。 在工作器程序中,可以通过四种方法(sendUrl、sendPage、sendResult、send )插入消息: 工作器下载器处理url消息,处理器处理page消息,服务器处理result消息,而freeman处理所有自定义消息。 我们要做的工作是实现工作器的四个函数。

工作器界面的设计

JLiteSpider将整个爬虫捕获过程抽象为四个部分,由四个接口定义。 是downloader、processor、saver和freeman。 它们分别处理上述四条消息。

需要的是实现此接口,并返回希望捕获的url链表。 具体实现的细节可以由你高度定制。

1. Downloader:

使用此部分可以完成页面下载任务,并将要捕获的url链表转换(下载并保存)为相应的页面数据表。

接口的设计如下。

公共接口下载器{

//*

下载在url中指定的页面。

* @param url

*从消息队列收到的消息

* @param mQueue

*提供向每个消息队列发送消息的方法

* @throws IOException

*/

公共语音下载(对象URL,映射队列) throws IOException;

}

你也能实现这个接口。 具体实现你可以自由定制。 实现download函数就可以了。 url是从消息队列发送来的消息,其中不一定包含url。 具体是什么内容,由进入消息队列时决定。 mQueue提供了一种向每个消息队列发送消息的方法,在mQueue.get ' . '中选择一个消息队列,然后使用四种方法: sendUrl、sendPage、sendResult和send

2 .处理器:

Processor是解析器的界面,在这里,它从网页的原始文件中提取有用的信息。

界面设计:

公共接口处理器{

//*

*处理下载页面的源代码

* @param page

从消息队列推送的页面源代码数据消息

* @param mQueue

*提供向每个消息队列发送消息的方法

* @throws IOException

*/

公共语音处理(对象页,映射队列) throws IOException;

}

实现该接口,完成页面源的分析处理。 page是消息队列发来的消息,具体格式也是你收到时决定的。 mQueue使用同上。

3. Saver:

Saver可以实现对分析得到的结果的处理,并将分析得到的数据保存在数据库和文件等中。 或者将url重新存储在消息队列中,以实现迭代捕获。

界面设计:

公共接口服务器{

//*

最终分析结果的处理

* @param result

从消息队列推送的结果消息

* @param mQueue

*提供向每个消息队列发送消息的方法

* @throws IOException

*/

公共语音保存(对象结果,映射队列) throws IOException;

}

通过实现该接口,可以完成结果的处理。 你也能实现这个接口。 具体实现你可以自由定制。 实现download函数就可以了。 result是消息队列发送来的结果消息,具体格式是在你进入消息队列时决定的。 mQueue的使用同上。

4. Freeman:

通过上述三个过程,可以实现爬行动物捕获的正常过程。 但是,jlitespider也提供了类似的定制功能。 可以改进、加强、改进或渴望这种捕获过程。 freeman是一个处理自定义消息格式的接口,可以通过实现它来定义自己的格式和定义自己的流程。

界面设计:

公共接口框架{

//*

*自定义处理函数

* @param key

* key是自定义的消息标记

* @param msg

从消息队列推送的消息

* @param mQueue

*提供向每个消息队列发送消息的方法

* @throws IOException

*/

public void do something (字符串密钥,对象msg,映射队列) throws IOException;

}

可以通过实现doSomeThing函数来处理来自消息队列的自定义消息。 key是消息的标记,msg是消息的内容。 同样,可以使用mQueue的send方法向消息队列发送自定义消息。 请注意,自定义的消息标记不能是url、page或result。 否则,它可能由jlitespider的保留消息处理,即上述三个接口函数。 )

总结说明

虽然jlitespider的设计可能会有些令人困惑,但熟悉这一系列设计后,您会发现jlitespider是多么灵活易用。

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。