原始标题:使用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是多么灵活易用。
责任编辑: