文档章节

java 字符串 获取网页纯文本 及空格 回车替换

林伟琨
 林伟琨
发布于 2016/08/13 15:31
字数 270
阅读 33
收藏 0
package cn.com.czj.front.utils.http;

import java.io.*;

import org.apache.commons.lang3.StringUtils;
import org.htmlparser.Parser;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;

class GetPureWord {
	public static void main(String[] argv) throws IOException, InterruptedException, ParserException {
		Parser parser;
		String body = "";
		String title = "";
		String url = "http://www.linweikun.com/";
		try {
			parser = new Parser(url);
			parser.setEncoding("UTF-8");
			HtmlPage htmlpage = new HtmlPage(parser);
			parser.visitAllNodesWith(htmlpage);
			// 通过htmlparser 获取body内容
			body = htmlpage.getBody().asString();
			// 通过htmlparser 获取title内容
			title = htmlpage.getTitle();
			body = body.replaceAll("[ \\t\\n\\r\\f( |gt) ]+", " ");
			System.out.println(title);
			System.out.println(body);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		// System.out.println(StringUtils.replace(getText(url), "\n",""));
		// System.out.println(StringUtils.replacePattern(getText(url),
		// "\\s*|\t|\r|\n", ""));
		// System.out.println(StringUtils.replacePattern(getText(url), "\\s+",
		// " "));
		System.out.println(StringUtils.replacePattern(StringUtils.replace(getText(url), "\n", ""), "\\s+", " "));

	}

	/**
	 * 根据提供的URL,获取此URL对应网页的纯文本信息
	 * 
	 * @param url
	 *            提供的URL链接
	 * @return RL对应网页的纯文本信息
	 * @throws ParserException
	 */
	public static String getText(String url) throws ParserException {
		StringBean sb = new StringBean();
		// 设置不需要得到页面所包含的链接信息
		sb.setLinks(true);
		// 设置将不间断空格由正规空格所替代
		// sb.setReplaceNonBreakingSpaces(true);
		// 设置将一序列空格由一个单一空格所代替
		// sb.setCollapse(true);
		// 传入要解析的URL
		sb.setURL(url);
		// 返回解析后的网页纯文本信息
		return sb.getStrings();
	}

}

© 著作权归作者所有

共有 人打赏支持
林伟琨
粉丝 9
博文 106
码字总数 38738
作品 0
厦门
后端工程师
Scala学习(九)文件和正则表达式

1.读取行 要想读取文件中的所有行,可以调用scala.io.Source对象的getLines方法: 注:读取文件的指定编码必须要和文件编码对应,否则执行报错:Exception in thread "main" java.nio.chars...

我爱春天的毛毛雨
10/08
0
0
Java 正则表达式功能及应用

正则表达式,就是用某种模式去匹配一类字符串的一个公式,正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,不管是...

浮躁的码农
2015/07/29
0
0
Android编译系统 - pathmap.mk(宏)

build/core/pathmap.mk 文件定义了一个列表pathmap_INCL,列表中每项是"短名:路径"对。宏函数include-path-for将会使用这个列表,来通过短名获取相对于的路径, 如:$(call include-path-for...

我爱咸蛋黄
2013/04/26
0
0
IntelliJ IDEA 10.0 64位运行方法

IntelliJ IDEA 10.0 默认的快捷方式是以32位运行的.虽然性能上面感觉不出什么变化,但让人心里不很爽.IDEA是JAVA程序,如果我们直接从JAVA命令运行的话那就默认是64位了.还好,IDEA支持以命令调...

SeanCai
2010/12/19
0
1
LeetCode:String to Integer (atoi) - 字符串到数字的转换

1、题目名称 String to Integer (atoi) (字符串到数字的转换) 2、题目地址 https://leetcode.com/problems/string-to-integer-atoi/ 3、题目内容 英文:Implement atoi to convert a strin......

北风其凉
2015/07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
22分钟前
0
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0
学习设计模式——生成器模式

1. 认识生成器模式 1. 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2. 组成: Builder:生成器接口,定义创建一个Product对象所需要的各个组件的操作,...

江左煤郎
昨天
0
0
C语言精要(第二章:基本数据类型)

2.1 C语言基本数据类型 在计算机术语中,把⼆进制数中的某⼀位数又称为⼀个⽐特(bit)。⽐特这个单位对于计算机⽽⾔,在度量上是最⼩的单位。除了⽐特之外,还有字节(byte)这个术语。⼀个...

ryanliue
昨天
0
0
实现下拉菜单多选框效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><li>工作意愿地:<%-- <c:forEach items="${list}" var="list"><input type="checkbox" value="${list......

lanjian28
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部