Java 动手写爬虫: 五 对象池

第五篇,对象池的设计与实现

阅读更多

Java 动手写爬虫: 四、日志埋点输出 & 动态配置支持

第四篇, 日志埋点输出 & 动态配置支持

前面基本上实现了一个非常简陋的爬虫框架模型,很多关键链路都没有日志,在分析问题时,就比较麻烦了,因此就有了这一篇博文

其次就是解决前几篇遗留的容易解决的问题

实际上,日志的输出应该贯穿在实际的开发过程中的,由于之前写得比较随意,直接System.out了, 所以现在就来填坑了

阅读更多

Java 动手写爬虫: 三、爬取队列

第三篇 爬取队列的实现

第二篇中,实现了深度爬取的过程,但其中一个比较明显的问题就是没有实现每个爬取作为一个独立的任务来执行;即串行的爬取网页中的链接;因此,这一篇将主要集中目标在并发的爬网页的问题上

目标是每个链接的爬取都当做一个独立的job来执行

阅读更多

Java 动手写爬虫: 二、 深度爬取

第二篇:深度爬取

前面实现了一个最基础的爬取单网页的爬虫,这一篇则着手解决深度爬取的问题

简单来讲,就是爬了一个网页之后,继续爬这个网页中的链接

阅读更多

Java 动手写爬虫: 一、实现一个最简单爬虫

第一篇实现一个最简单爬虫

阅读更多

4. SPI框架实现之旅四:使用测试

使用测试

前面三篇主要是介绍如何设计的,如何实现的,这一篇,则主要集中在如何使用。实现得再好,如果不好用,也白搭

本篇介绍几个简单的使用case,包括静态使用,动态适配,自定义选择器等

阅读更多

3. SPI框架实现之旅三:实现说明

实现说明

前一篇 《SPI框架实现之旅二:整体设计》中,介绍了几个定义的接口,注解;叙述了实现流程;并简单的介绍了 SpiLoader中的部分实现; 本篇则主要介绍SpiLoader类的实现

类图结构如下:

https://static.oschina.net/uploads/img/201705/27183336_TOny.png

阅读更多

2. SPI框架实现之旅二:整体设计

整体设计

上一篇简单的说了一下spi相关的东西, 接下来我们准备开动,本篇博文主要集中在一些术语,使用规范的约定和使用方式

阅读更多

1. SPI框架实现之旅一:背景介绍

背景介绍

SPI的全名为Service Provider Interface,简单的总结下java spi机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制

阅读更多

渲染
渲染