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服务器数据采集框架是一种用于高效收集、处理和传输大量数据的软件架构,尤其适用于高并发环境。在这种框架中,Netty作为一个高性能、异步事件驱动的网络应用框架,扮演着核心角色。Netty是由Java编写,广泛应用...
本篇文章将探讨如何利用Java结合正则表达式进行网页数据采集。 正则表达式在Java中的应用广泛,是处理字符串和文本的关键工具。正则表达式可以用来搜索、替换和提取特定模式的文本,其灵活性和强大功能使其在数据...
首先,让我们深入理解Java在网站数据采集中的作用。Java是一种多平台支持的、面向对象的编程语言,它提供了丰富的库和框架,如Jsoup和Apache HttpClient,用于爬取和解析网页内容。通过编写Java程序,我们可以定制化...
对于“java-sdk新浪微博数据采集工程内部代码”这个项目,它提供了一个基于Java的SDK(Software Development Kit),专门用于从新浪微博平台提取数据。SDK通常包含了一系列工具、库、文档和示例代码,帮助开发者更...
- 示例代码:Example文件可能包含示例代码,用于演示如何使用API进行数据采集和设备控制。 5. 安全与稳定性 - 数据安全:API在设计时应考虑数据传输的安全性,确保在工业网络中传输的数据不被窃取或篡改。 - ...
### 基于Java的社会化海量数据采集爬虫框架搭建设计与实现 #### 一、引言 随着大数据时代的到来,对于数据的需求日益增长。如何有效地采集互联网上的数据成为了一个重要的课题。本文将探讨如何利用Java开发语言...
标题中的“UTGard java采集OPC服务数据”是指使用Java编程语言,通过UTGard这个库或框架来实现对OPC(OLE for Process Control)服务的数据采集。OPC是工业自动化领域的一种标准接口,它允许不同的软件应用程序之间...
标题中的“Symbol MC1000进行数据采集代码示例”揭示了我们即将探讨的主题,即如何使用Symbol MC1000手持终端进行数据采集,并提供了实现这一功能的编程示例。Symbol MC1000是一款专为轻工业环境设计的条形码扫描器...
为了更好地理解和掌握数据采集工具箱的使用方法,下面给出一个简单的数据采集示例: **1. 模拟输入(AI)示例** - **准备工作**:首先,确保已安装所需的硬件(本例中使用凌华DAQ2010数据采集卡)以及相应的硬件...
总之,中控ZK4500指纹采集器的SDK开发示例程序是一份宝贵的资源,无论你是C#、Java还是VC++的开发者,都能从中找到适应自己开发环境的方法。结合SDK文档,你可以轻松地将指纹识别功能整合进你的应用程序中,提升系统...
在工业自动化领域,Java语言与PLC(可编程逻辑控制器)的通信是常见的需求,用于实现远程监控、数据采集和设备控制。本示例代码利用了Modbus协议,这是一种广泛应用于工业设备间通信的开放标准协议。Modbus4J是一个...
这个名为"音频采集播放示例"的项目提供了一套完整的音频处理流程,包括从音频数据的获取到最终的播放,以及中间可能涉及的信息截取和传输。下面将详细讲解这些知识点。 **音频采集**:音频采集是指将声音信号转化为...
压缩包中的源码可能是Python、R、Java或其他编程语言实现的数据采集和处理功能,这对于学习和理解相关技术非常有帮助。通过阅读和运行这些代码,可以深入了解数据处理流程,提高编程技能,并能够根据实际需求进行...
在本案例中,"用Socket编写的通过网络的数据采集程序"是一个基于CDMA Socket技术的解决方案,它允许客户端从服务器端实时采集数据,且用户可以自定义数据采集的频率。 CDMA(Code Division Multiple Access,码分多...
开发者可以使用开源工具,如Apache Flume或NiFi来设计数据流,或者使用Java、Python等编程语言自定义数据采集逻辑。这些源码可能包含对数据转换、过滤、聚合等功能的实现,确保数据达到预期的格式和质量。 接下来,...
标题“new_test.rar_NEW_java 采集_采集入库”暗示了我们讨论的是一个使用Java语言开发的自动数据采集系统,该系统可能负责从互联网上抓取信息并将其存储到数据库中。Java作为一种广泛使用的编程语言,因其强大的跨...
基于labview平台搭建虚拟仪器.zip"的压缩包中,包含了使用LabVIEW开发的数据采集和处理相关的示例程序,特别是与示波器功能相关的应用。 1. **虚拟示波器**:虚拟示波器是LabVIEW中的一个重要应用,它模拟了传统...
标题中的“SyntecRemoteAPI_v4_1.0.12新代一对多API采集,程序代码”指的是Syntec公司开发的远程API接口的第4版,具体为1.0.12版本,其核心特性是实现了一对多的数据采集功能。这个API主要应用于与新代(Syntec)...
本文将深入探讨“串口读数据采集仪数据demo”这一主题,包括串口通信的基本概念、实现过程以及如何通过串口连接数据采集仪并读取实时数据。 串口通信,也称为串行通信,是指数据以串行的方式一位接一位地传输。相比...
下面将详细介绍DXGI桌面采集流程的简单示例。 一、初始化DXGI 在开始桌面采集之前,首先需要初始化DXGI环境。这包括创建一个`IDXGIFactory`实例,它是创建其他DXGI对象的工厂。通过调用`CoCreateInstance`函数,...