文档章节

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

林伟琨
 林伟琨
发布于 2016/08/13 15:31
字数 270
阅读 38
收藏 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();
	}

}

© 著作权归作者所有

共有 人打赏支持
林伟琨
粉丝 8
博文 107
码字总数 38972
作品 0
厦门
后端工程师
私信 提问
Java 正则表达式入门

众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表...

华宰
2010/10/13
387
2
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
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
Scala学习(九)文件和正则表达式

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

我爱春天的毛毛雨
10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

iOS补位动画、沙漏效果、移动UITableViewCell、模拟贪吃蛇、拖拽进度等源码

iOS精选源码 JHAlertView - 一款黑白配色的HUD之沙漏效果 继承UIButton的自定义按钮SPButton 用递归算法实现iOS补位动画 iOS 长按移动UITableViewCell JHLikeButton - 有趣的点赞动画 兼容X...

Android爱开源
17分钟前
0
0
08.Beetl自定义方法以及直接访问java类方法---《Beetl视频课程》

本期视频实现了发布评论时间自定义显示; 内容简介:使用了自定义方法以及直接访问java方法实现了发布时间自定义显示 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catal...

Gavin-King
18分钟前
0
0
上币至iamToken

https://github.com/consenlabs/token-profile 点击Fork按钮,插入到自己的github项目中 cd /Users/shijun/Desktop/blockChain/iamToken git clone https://github.com/yellmi1983/token-pro......

八戒八戒八戒
21分钟前
0
0
spark——sparkCore源码解析之RangePartitioner

HashPartitioner分区可能导致每个分区中数据量的不均匀。而RangePartitioner分区则尽量保证每个分区中数据量的均匀,将一定范围内的数映射到某一个分区内。分区与分区之间数据是有序的,但分...

freeli
21分钟前
1
0
常用的ES6语法

什么是ES6?   ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。   ECMAScript和JavaScr...

peakedness丶
25分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部