爬虫可以爬了

昨天没有写日志,基本昨天的任务是完成了单个页面获取符合正则的内容(其实是偷懒没时间写太多)。

今天更新的内容比较多,将Download类作为多线程实现类,由TaskHandler类调用,并且创建了静态变量提供线程的数目属性,可以自定义线程的数量。线程之间同步两个存储队列,避免出现死锁。

TaskHandler.java

package com.nickzy.dspider;

/**

* @author zynick

*

*/

public class TaskHandler {

int threads = FunctionKit.threads;//默认线程数

Spid......

Dspider

经过4天课余时间,Dspider做好了,虽然没有实现很多高级功能,但是对于抓取博客站和新闻站已经足够了,也满足了我的要求。

其主要特性有:

·支持自定义多线程抓取页面

·能够自定义内容存储方式,默认使用json格式保存文件

·数据处理模块和下载器分离

下面贴上源码:

TaskHandler

package com.nickzy.dspider;

import java.util.Iterator;

import java.util.concurrent.CountDownLatch;

import java.util.function.Function;

......

Dspider出生了

今天是第一天,简单的写了爬虫的框架结构:

─com

└─nickzy

└─dspider

DataParser.java #原始数据解析

DataSolver.java #价值数据处理

Downloader.java #下载器组件

FinishQuee.java #历史访问的地址集合

FunctionKit.java #静态方法类

RunSpider.java #测试类

Spider.java #爬虫定义类

TaskHandler.java #任务调度

UnreadQuee.java #待访问地址队列

TaskHandle......