Htmlparser 得到替换后的文本

需求:替换HTML文件内的全部链接然后得到替换后的HTML文件

考虑采用Htmlparser解析

代码如下

public class DoReplaceHtmlHref implements Callable<String> {

private String content;

public DoReplaceHtmlHref(String content) {
this.content = content;
}

public String call() throws Exception {
Parser myParser = new Parser();
StringBuffer sbContent = new StringBuffer();

try {
myParser.setInputHTML(content);

//得到页面的所的节点集合
NodeList nodes = myParser
.extractAllNodesThatMatch(new NodeFilter() {
public boolean accept(Node node) {
return true;
}
});

for (int i = 0; i < nodes.size(); i++) {
Node node = nodes.elementAt(i);
//如果为链接节点
if (node instanceof LinkTag) {
LinkTag linkTag = (LinkTag) node;
//设置此链接节点的内容
sbContent.append("<a href=www.163.com>"); } else if (node instanceof TextNode) {
//如果为文本节点直接获取内容
TextNode text = (TextNode) node;
sbContent.append(text.getText());
} else {
//如果为其他节点在文本两端加上<>
sbContent.append('<');
sbContent.append(node.getText());
sbContent.append('>');
}
}
} catch (Exception e) {
log.error("parse html enode is error");
}
return sbContent.toString();
}

}
从苏宁电器到卡巴斯基第02篇:我的本科时光(中) 怎么还分班了呢? 大概是在大二第二学期的时候吧,学院突然通知我们要分班。因为我们目前所有学生都是属于工商管理专业的,而从下个学期开始,就要分为会计、市场营销以及工商管理这三个方向。这还真是打了我一个措手不及,我都不知道还有分班这一回事。不过也没关系,我继续选择我的工商管理就好了。不过,在实际的选择结果上,像会计和工商管理这种学科,选的人自然是占了绝大多数,而选择市场营销的,大概也就是十 阅读详情

相关推荐

Opencv计算相机响应函数(Camera Response Function)与Radiance

本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制

larrydong的博客 5999

htmlparser 中修改 HTML 内容的方法

          htmlparser(HTML Parser )是 sourceforge.net 上的一个成熟的 java 项目。它可以解析 HTML 页面,用来抽取或修改其内容,通过过滤器、访问者来访问程序关心的标签(Tag)。   htmlparser 写道 HTML Parser is a Java library used to parse HTML in either a ...

"#{thinking} on lzy" 490

多标签损失之Hamming Loss(PyTorch和sklearn)、Focal Loss、交叉熵和ASL损失

多标签损失

wuli_xin的博客 4461

htmlparser应用

package com.util.md5; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayLis...

sprone的专栏 123

关于使用perfetto(systrace)对卡顿进行分析-实战分析

本文主要讲述了我在使用perfetto分析小米中桌面滑动卡顿的方法以及步骤。 这是我用的trace文件: 链接:https://pan.baidu.com/s/11EhCvu0pfR7Qfu6bDf_GLw?pwd=ic43 提取码:ic43Perfetto 是用于性能检测和跟踪分析的生产级开源堆栈。它提供用于记录系统级和应用级跟踪、本机 + java 堆分析、使用 SQL 分析跟踪的库以及用于可视化和浏览多 GB 跟踪的基于 Web 的 UI 的服务和库。在地址栏输入https://ui.perfe

qq_40494059的博客 1万+

Visual SLAM算法笔记

最近在学习SLAM算法,这里作为阅读笔记记录和总结一下。对经典的单目SLAM/VO算法做了摘要和总结,比如Nister VO、MonoSLAM、PTAM、ORB-SLAM、LSD-SLAM、SVO、DSO等,对几个单目和IMU的融合算法也做了简单总结,比如MSCKF、OKVIS、IMU-Preintegration等。

MulinB的技术博客 3万+

新工具收集-html解析

一款Java 用来解析HTML 文档的类库——jsoup 目前 OSChina 已经将原来的 htmlparser 删掉,并完全使用 jsoup 代替。jsoup 的设计十分精巧,只有十几个类居然具备非常强大的功能,如果用一句话来比较 jsoup 和 htmlparser,我想说的是,就好象是 jquery 和 prototype 的差别,jsoup 完全接受 jquery 的思路。 jsou...

fsh430623的专栏 164

用 MVC 框架把 ABAP 报表写成可扩展的应用(2)

本文介绍了一个基于MVC架构的SAP报表模板,解决了传统ABAP报表开发中的三个核心痛点: 选择屏幕校验逻辑分散问题 - 通过统一的选择屏幕控制器集中管理校验逻辑 在线与后台输出不一致问题 - 共享同一数据模型,通过不同控制器实现多样化展示 屏幕流转管理混乱问题 - 主控制器统一管理所有屏幕流程和事件 该模板采用分层架构: Model层专注数据获取和业务规则 Controller层管理流程和交互 View层负责展示逻辑 特别适用于需要同时支持交互式ALV展示和后台批处理输出的报表场景,通过标准化的扩展点设计

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 78

HTMLParser的visitor访问方式详解

<br />参考文档:http://allenj2ee.iteye.com/blog/222457 ,希望与大家分享<br />从简单方面的理解,Filter是根据某种条件过滤取出需要的Node再进行处理。Visitor则是遍历内容树的每一个节点,对于符合条件的节点进行处理<br />。实际的结果异曲同工,两种不同的方法可以达到相同的结果:<br />1、<br />package html;<br />import java.io.IOException;<br />import java.net.Htt

技术人宝哥 1900

Codex 100个真实案例 - 用AI绘制CAD机械图纸(工程师看了直呼内行)

本案例将展示如何用 Codex 生成 Python 脚本,通过 `ezdxf` 库绘制标准 DXF 格式的 CAD 机械图纸。我们会从零开始,逐步实现直线、圆、圆弧、标注等基本图形元素,最终绘制出一张包含主视图、俯视图、尺寸标注、标题栏和技术要求的完整法兰盘零件图。还会演示参数化批量生成不同规格零件图和自动 BOM 物料清单,生成的 DXF 文件可直接在 AutoCAD、FreeCAD 中打开。全程用自然语言驱动 Codex,工程师看完直接上手!

yueyeguzhuo的专栏 2063

基于 STM32 设计的 HC05 蓝牙音箱

本项目介绍如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。该音箱可以接收来自手机或其他蓝牙设备的音频数据,并通过扬声器播放。该项目展示了如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。易于实现功能实用可扩展性强如果您需要开发一个蓝牙音箱,该项目可以作为参考。

走向CTO的路上... 2470

htmlparser修改html,如何用htmlparser修改html中标签的内容

/*** @param args* @throws ParserException*/public static void main(String[] args) throws ParserException {// TODO Auto-generated method stubString sText="测试文本一测试文本二其他数据;";String sText_new = "";Parser ...

weixin_36257663的博客 334

还在纠结二层交换机和三层交换机的区别?这篇文章帮你讲明白!

你好,这里是网络技术联盟站,我是瑞哥。公众号后台有小伙伴想要写一篇文章具体介绍一下二层交换机和三层交换机,此类的文章,之前写过几篇,今天瑞哥再写一篇,希望对大家有所帮助!

网络技术联盟站 4438

java 替换src_替换Java中IMG标签的src属性

我有一个HTML文档,我需要更新IMG标签的text和src属性。我在Java工作。我想替换HTML中的以下字符串:DataName,DataText和DataIcon。替换Java中IMG标签的src属性DataNameInfoDataTextPictures1 2 Video虽然我suceeded替换字符串数据名称和DataText,我还没有成功通过存储在数据库中的字符串我IMAGEURL更换...

weixin_42520277的博客 1021

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python html转TXT python读取html指定区域文本内容转成txt文件

夹以及子目录、子目录里面的 ,获取到该目录下所有的【.html】文件后,返回一个list对象 2、遍历完成后得到一个html文件列表对象,将该列表交给html_to_txt方法,html_to_txt方法 里面循环逐个读取html文件中指定标签中标签中标签中的文字,和中指定标签 里面标签的文字提取出来 3、读取到的文本内容输出到txt文件中,这里可以加上一个替换replac

a276397082的博客 2651

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java 改变标签值,如何更改Java中的HTML标签内容?

How can I change HTML content of tag in Java? For example:before:text**text**textafter:text**new text**textI tried JTidy, but it doesn't support getTextContent. Is there any other solution?Thanks, I w...

weixin_39790510的博客 549

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python数据结构算法题三十七:在字符串中处理 html 和 xml

使用像 html.escape() 的工具函数可以很容易的解决这类问题。比如,如果你在处理 HTML 或 XML 文本,使用某个解析模块比如 html.parse 或 xml. etree.ElementTree 已经帮你自动处理了相关的替换细节。有时候,如果你接收到了一些含有编码值的原始文本,需要手动去做替换,通常你 只需要使用 HTML 或者 XML 解析器的一些相关工具函数/方法即可。如果你想替换文本字符串中的‘’,使用 html.escape() 函数可以很 容易的完成。

m0_68635815的博客 346

html 空白汉字占位符 

  在爬取京东评论时,复制html内容,发现文本中有些空格的宽度没见过。后来用htmlParser解析html页面时,发现这些空格都被替换为&#12288;。 12288是Unicode编码,&#表示宋体,&#12288就表示一个汉字的宽度,在浏览器中就显示为一个汉字宽度的空格。 转载于:https://www.cnblogs.com/xyqhello/p/3682...

weixin_34007020的博客 287

Android缓存html图片

package com.example.testwebimgcache; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; ...

轻描时光 512

Starfyre源码解析(二):ComponentParser——基于HTMLParser构建组件树的完整原理

Starfyre 是一个基于 WASM 的响应式 Python SSR 框架。本文继续源码解析系列,带你完整拆解 Starfyre 框架的核心模块 ComponentParser:它如何利用 Python 标准库 HTMLParser,把 Pyxide 模板一次遍历、零第三方依赖地构建成一棵组件树,并顺便完成响应式信号的注入。🌱 ## 一、Starfyre 组件树构建流程:ComponentP

gitblog_01083的博客 1059

htmlparser.dll文件免费下载 程序文件缺失补回方法

在使用电脑时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C++运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC++运行库或者安装的版本不完整,就可能会导致这些软件启动时报错,提示缺少库文件。文件下载完成后,下方列表会有很多个不同版本的文件,这里我们根据自己所需要的版本文件,点击右边的“打开”,这样就找到了下载的文件。下面我们通过使用一款DLL修复工具免费下载需要的文件。

2508_90755225的博客 1016

探索高效HTML解析:htmlparser2

探索高效HTML解析:htmlparser2 htmlparser2The fast & forgiving HTML and XML parser项目地址:https://gitcode.com/gh_mirrors/ht/htmlparser2 在Web开发中,处理HTML和XML文档是一项基础且重要的任务。今天,我们要向您推荐一个快速且灵活的解决方案——htmlparser2,一个由fb5...

gitblog_00108的博客 753

Python API 翻译-HTMLParser模块

Python 支持各种格式的结构化数据标记。包括SGML,HTML,XMLXML包中的模块需要SAX-compliant XML parser 是可用的。PyXML插件包提供了XML扩展20.1 HTMLParser-简单的HTML和XHTML parser在Python 3.0中,HTMLParser is renamed to html.parser 该模块定义了一个类HTMLParser,用来解析HTML文本文件,也包括XHTML。和htmllib不同,它并非基于SGMLparser。class

8小时测试 2120

node-htmlparser

`node-htmlparser` 是一个用于解析 HTML 和 XML 的 JavaScript 库。它允许您以 DOM(文档对象模型)或基于事件的方式处理 HTML,并且可以在 Node.js 或浏览器中运行。 ## 使用场景 `node-htmlparser` 可用于多种用途,例如: - 解析 HTML 并提取所需的数据。 - 转换 HTML 到其他格式,如 JSON、XML 等。 -...

gitblog_00004的博客 674

Python3 html解析类html.parser.HTMLParser

HTMLParser

荣耀之路 5993

python HTMLParser处理A标签…

HTMLParser类中有针对HTML标签的相应的函数,通过自定义,重载类中的函数来处理一些标签,函数如下: HTMLParser.anchor_bgn(href, name, type):#a标签开始的时候被调用,参数是A标签的属性值 HTMLParser.anchor_end() #锚点标签结束的时候处理 HTMLParser.save_bgn():#开始在缓冲区中保存字符数据,通过save

无限大地NLP_空木的专栏 1991
上一篇: commons httpclient 工具类 代码总结
下一篇: Solr 通信之Socket计划
fdsafds
博客等级 码龄20年 0粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值