`
276833190
  • 浏览: 14394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 数据采集,采集各个网站的小说文章示例

阅读更多

1、首先要有 jsoup-1.7.1.jar jar包 引入。

 

2、jsoup 的工具类:

package com.wp.util;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

public class JsoupUtil {

	public static Document getDocument(String url) {
		int error_count = 0;
		Document doc = null;
		while (true) {
			if (error_count > Constants.url_error_count) {
				break;
			}
			try {
				doc = Jsoup
						.connect(url)
						.timeout(Constants.url_ConnectTimeout)
						.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
						.header("Accept-Encoding", "gzip,deflate,sdch")
						.header("Connection", "keep-alive")
						.followRedirects(true)
						.userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")
						.get();
			} catch (Exception e) {
				error_count++;
			}
			if (doc != null) {
				break;
			}
		}
		return doc;
	}

	public static Document parseHtml(String html) {
		return Jsoup.parse(html);
	}

}

3、主要采集的类:

 

package com.wp.test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.wp.util.JsoupUtil;
import com.wp.util.Util;

public class Caiji {
	public static void main(String[] args) {
		start();
	}

	public static void start() {
		BufferedWriter w = null;

		Document doc = JsoupUtil.getDocument("http://www.00kxs.com/html/0/596/");// 获取章节列表
		try {
			File file = new File("E:/abc.txt");
			w = new BufferedWriter(new FileWriter(file));

			if (doc != null) {
				Elements list_a = doc.select("div[id=list] dl dd a");// 获取所有章节的url内容
				for (Element el : list_a) {
					String url = el.attr("abs:href");// 章节url
					String name = el.text();// 章节名称
					int chp_num = Util.parseInt(Util.getMatch("第(\\d+)章", name, 1));
					System.out.println(url + "=====" + name + "====" + chp_num);

					Document e_content = JsoupUtil.getDocument(url);// 获取章节正文
					String content = "";// 章节正文
					if (e_content != null) {
						content = e_content.select("div[id=content]").html().replace(" ", " ");
						content = content.replace("<br />", "\n").replaceAll("(\n){1,}", "\n");

						w.append(name + "\n\n" + content.replaceAll("(\n){1,}", "\n") + "\n\n");
					} else {
						w.append(name + "\n\n");
					}
				}
			} else {
				System.out.println("没有获取正文");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (w != null)
					w.close();
			} catch (Exception e) {
			}
		}
	}
	
}

  

 

分享到:
评论

相关推荐

    Java服务器数据采集框架

    Java服务器数据采集框架是一种用于高效收集、处理和传输大量数据的软件架构,尤其适用于高并发环境。在这种框架中,Netty作为一个高性能、异步事件驱动的网络应用框架,扮演着核心角色。Netty是由Java编写,广泛应用...

    Java网页数据采集器[数据采集].

    本篇文章将探讨如何利用Java结合正则表达式进行网页数据采集。 正则表达式在Java中的应用广泛,是处理字符串和文本的关键工具。正则表达式可以用来搜索、替换和提取特定模式的文本,其灵活性和强大功能使其在数据...

    网站访问数据采集

    首先,让我们深入理解Java在网站数据采集中的作用。Java是一种多平台支持的、面向对象的编程语言,它提供了丰富的库和框架,如Jsoup和Apache HttpClient,用于爬取和解析网页内容。通过编写Java程序,我们可以定制化...

    java-sdk新浪微博数据采集工程内部代码

    对于“java-sdk新浪微博数据采集工程内部代码”这个项目,它提供了一个基于Java的SDK(Software Development Kit),专门用于从新浪微博平台提取数据。SDK通常包含了一系列工具、库、文档和示例代码,帮助开发者更...

    SyntecRemoteAPI_1.0.9_台湾新代CNC数据采集程序_

    - 示例代码:Example文件可能包含示例代码,用于演示如何使用API进行数据采集和设备控制。 5. 安全与稳定性 - 数据安全:API在设计时应考虑数据传输的安全性,确保在工业网络中传输的数据不被窃取或篡改。 - ...

    基于java社会化海量数据采集爬虫框架搭建设计与实现.docx

    ### 基于Java的社会化海量数据采集爬虫框架搭建设计与实现 #### 一、引言 随着大数据时代的到来,对于数据的需求日益增长。如何有效地采集互联网上的数据成为了一个重要的课题。本文将探讨如何利用Java开发语言...

    UTGard java采集OPC服务数据

    标题中的“UTGard java采集OPC服务数据”是指使用Java编程语言,通过UTGard这个库或框架来实现对OPC(OLE for Process Control)服务的数据采集。OPC是工业自动化领域的一种标准接口,它允许不同的软件应用程序之间...

    Symbol MC1000进行数据采集代码示例

    标题中的“Symbol MC1000进行数据采集代码示例”揭示了我们即将探讨的主题,即如何使用Symbol MC1000手持终端进行数据采集,并提供了实现这一功能的编程示例。Symbol MC1000是一款专为轻工业环境设计的条形码扫描器...

    MATIAB数据采集工具箱.pdf

    为了更好地理解和掌握数据采集工具箱的使用方法,下面给出一个简单的数据采集示例: **1. 模拟输入(AI)示例** - **准备工作**:首先,确保已安装所需的硬件(本例中使用凌华DAQ2010数据采集卡)以及相应的硬件...

    指纹采集器_SDK开发示例程序_C#_Java_VC.zip

    总之,中控ZK4500指纹采集器的SDK开发示例程序是一份宝贵的资源,无论你是C#、Java还是VC++的开发者,都能从中找到适应自己开发环境的方法。结合SDK文档,你可以轻松地将指纹识别功能整合进你的应用程序中,提升系统...

    java与plc通讯示例代码

    在工业自动化领域,Java语言与PLC(可编程逻辑控制器)的通信是常见的需求,用于实现远程监控、数据采集和设备控制。本示例代码利用了Modbus协议,这是一种广泛应用于工业设备间通信的开放标准协议。Modbus4J是一个...

    音频采集播放示例

    这个名为"音频采集播放示例"的项目提供了一套完整的音频处理流程,包括从音频数据的获取到最终的播放,以及中间可能涉及的信息截取和传输。下面将详细讲解这些知识点。 **音频采集**:音频采集是指将声音信号转化为...

    数据采集2.0.zip

    压缩包中的源码可能是Python、R、Java或其他编程语言实现的数据采集和处理功能,这对于学习和理解相关技术非常有帮助。通过阅读和运行这些代码,可以深入了解数据处理流程,提高编程技能,并能够根据实际需求进行...

    用Socket编写的通过网络的数据采集程序.rar_cdma_socket_数据采集_服务器_网络 数据采集

    在本案例中,"用Socket编写的通过网络的数据采集程序"是一个基于CDMA Socket技术的解决方案,它允许客户端从服务器端实时采集数据,且用户可以自定义数据采集的频率。 CDMA(Code Division Multiple Access,码分多...

    实时数据采集展示

    开发者可以使用开源工具,如Apache Flume或NiFi来设计数据流,或者使用Java、Python等编程语言自定义数据采集逻辑。这些源码可能包含对数据转换、过滤、聚合等功能的实现,确保数据达到预期的格式和质量。 接下来,...

    new_test.rar_NEW_java 采集_采集入库

    标题“new_test.rar_NEW_java 采集_采集入库”暗示了我们讨论的是一个使用Java语言开发的自动数据采集系统,该系统可能负责从互联网上抓取信息并将其存储到数据库中。Java作为一种广泛使用的编程语言,因其强大的跨...

    labview程序-示波器-数据采集-虚拟仪器,可以直接使用,进行数据采集,数据处理。基于labview平台搭建虚拟仪器.zip

    基于labview平台搭建虚拟仪器.zip"的压缩包中,包含了使用LabVIEW开发的数据采集和处理相关的示例程序,特别是与示波器功能相关的应用。 1. **虚拟示波器**:虚拟示波器是LabVIEW中的一个重要应用,它模拟了传统...

    SyntecRemoteAPI_v4_1.0.12新代一对多API采集,程序代码

    标题中的“SyntecRemoteAPI_v4_1.0.12新代一对多API采集,程序代码”指的是Syntec公司开发的远程API接口的第4版,具体为1.0.12版本,其核心特性是实现了一对多的数据采集功能。这个API主要应用于与新代(Syntec)...

    串口读数据采集仪数据demo

    本文将深入探讨“串口读数据采集仪数据demo”这一主题,包括串口通信的基本概念、实现过程以及如何通过串口连接数据采集仪并读取实时数据。 串口通信,也称为串行通信,是指数据以串行的方式一位接一位地传输。相比...

    DXGI 桌面采集流程 简单示例

    下面将详细介绍DXGI桌面采集流程的简单示例。 一、初始化DXGI 在开始桌面采集之前,首先需要初始化DXGI环境。这包括创建一个`IDXGIFactory`实例,它是创建其他DXGI对象的工厂。通过调用`CoCreateInstance`函数,...

Global site tag (gtag.js) - Google Analytics