① java 正则表达式, 将img 标签 过滤后只剩下 src属性,
这其实用不到正则表达式,用了弄不好还出错,直接用字符串判断吧,找到src那一长串,然后取出来。
String html="<img alt=\"cv发布会结束后,铁道部新闻发言人被记者包围\" src=\"http://img1.cache.netease.com/catchpic/B/B4/.jpg\"/><br/>";
String[] splittedStr = html.split(" ");
String srcStr = null;
for(String str:splittedStr){
if(str.trim().startsWith("src")){
srcStr = str;
}
}
srcStr = srcStr.substring(srcStr.indexOf("\"")+1,srcStr.lastIndexOf("\""));
System.out.println(srcStr);
看了你的补充要求,其实你改一下上面的程序,就很好实现了。
String html="<img alt=\"cv发布会结束后,铁道部新闻发言人被记者包围\" src=\"http://img1.cache.netease.com/catchpic/B/B4/.jpg\"/><br/>";
String[] splittedStr = html.split(" ");
String srcStr = null;
for(String str:splittedStr){
if(str.trim().startsWith("src")){
srcStr += str;
}
}
srcStr = "<img " + srcStr + "/>";
System.out.println(srcStr);
② 关于java,过滤html请求的Filter中跳转页面的问题。
肯定是逻辑问题
请把你的代码贴上来,可以分析 下。
if(包含某后缀名){
重定向
}
dofilter(...)
③ java怎样过滤危险字符
就WEB应用来说,所谓危险的字符一般就是两种
一个是SQL注入,一个是HTML语法注入
回SQL注入主流的框架答都可以搞定,JDBC永远都使用preparedstatement就可以防止所有的sql注入,关键是用户输入都要通过占位符往里放,就自动的替换掉了特殊字符了。hibernate等orm框架都会搞定这个问题
HTML语法注入是指用户输入的html代码回显出来,这样如果不转义就可以破坏页面的结构或者注入脚本。所以现在的网站都不允许用户直接输入html代码了,现在都是一些UBB标签来完成一些效果。HTML主要最好的解决办法是在回显的时候进行转义,所有的MVC框架或者展示层框架都有HTML转义的支持,包括struts,spring,volicty等,注意观察他们用于显示的标签
④ 用HTMLParser过滤掉html中所有标签,留下标题正文等内容,java
现在的网页,取来title容易,要取到整齐的内源容,就麻烦了。既然是爬虫,又不可能针对每个页面都写一遍。所以,你能解决这问题,是高智商、是值钱的。
<title>和</title>可以认为是标题,用字符串的处理方法即
<content>和</content>不是标准的HTML,不能认为之间的文字就是内容 。虽然<body>和</body>是,可之间的内容也太乱了。
⑤ 我想在java中的JLabel上用html显示图片,可是显示不了,想问下为什么要怎么弄代码如下
JLabel 中的 img 毕竟没有浏览器中的 img 那么强大,没有办法识别本地相对路径,需要指定为 绝对版路径,并需权要在前面添加 file:/ 。例如项目路径为E:/JavaProjects/demo1/ 则代码如下:
label.setText("<html><imgsrc='file:/E:/JavaProjects/demo1/image103.png'/></html>");
建议将图片放在 src 下,这样就可以动态获取。例如:
URLimageUrl=getClass().getResource("/image103.png");
label.setText("<html><imgsrc='"+imageUrl+"'/></html>");
⑥ 求一个JAVA替换HTML里面<img>标签里面绝对路径的部分字符串正规则表达式
html.replaceall("<IMG SRC=\\".*?\\"/>","your string")
⑦ java html的正则表达式过滤
|// 以下代码直接放到任意的javascript中,即可得到结果.
var string = "<td class=\"www\"><a href=\"10078049.html\">第十五章 瘦的也杀!</a></td>" +
"<td class=\"www\"><a href=\"10078050.html\">第十六章 暴力杀伐</a></td></tr>";
string = string.replace(/<(\/\s*)?((\w+:)?\w+)(\w+(\s*=\s*((["'])(\\["'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>/ig,"");
alert(string);
⑧ 给一个网页源码 ,在java中用正则匹配如何将<img = "xxxxx" ,xxx> 这样形式的所有标签过滤掉 求解-_-
Stringhtml="";
//"."代表任意非换行的字符,".*"代表任意多个这样的字符,后面跟个"?"表示回最小匹配
//这里的空格直答接用空格表示,如果不确定空格数量,最好用s代替空格
Patternpattern=Pattern.compile("<img=".*?",.*?>");
Matchermatcher=pattern.matcher(html);
while(matcher.find()){
//你的代码,这里是输出
System.out.println(matcher.group());
}
⑨ java截取html代码
BufferedReader br = new BufferedReader(new InputStreamReader(fileStream));
while(br.ready()){
String line=br.readLine();
if(line.indexOf("td ")>0 ){
// System.out.println(line);
str += line+",";
}
str=str.toLowerCase().replace('<td align="center" >',"")
.replace("</td>", "")
System.out.println(str);
这是一个事例,你应该看的明白吧!
还有你要再加一个tr的判断,把版str放到List里就可以了
就这么权简单的解决了,你要存到数据库里,再解析list就好了
⑩ java中几种解析html的工具
HTML分析是一个比较复杂的工作,Java世界主要有几款比较方便的分析工具:
1.Jsoup
Jsoup是一个集强大和便利于一体的HTML解析工具。它方便的地方是,可以用于支持用jQuery中css selector的方式选取元素,这对于熟悉js的开发者来说基本没有学习成本。
String content = "blabla";
Document doc = JSoup.parse(content);
Elements links = doc.select("a[href]");
Jsoup还支持白名单过滤机制,对于网站防止XSS攻击也是很好的。
2.HtmlParser
HtmlParser的功能比较完备,也挺灵活,但谈不上方便。这个项目很久没有维护了,最新版本是2.1。HtmlParser的核心元素是Node,对应一个HTML标签,支持getChildren()等树状遍历方式。HtmlParser另外一个核心元素是NodeFilter,通过实现NodeFilter接口,可以对页面元素进行筛选。这里有一篇HtmlParser的使用文章:使用 HttpClient 和 HtmlParser 实现简易爬虫。
3.Apache tika
tika是专为抽取而生的工具,还支持PDF、Zip甚至是JavaClass。使用tika分析HTML,需要自己定义一个抽取内容的Handler并继承org.xml.sax.helpers.DefaultHandler,解析方式就是xml标准的方式。crawler4j中就使用了tika作为解析工具。SAX这种流式的解析方式对于分析大文件很有用,我个人倒是认为对于解析html意义不是很大。
4.HtmlCleaner与XPath
HtmlCleaner最大的优点是:支持XPath的方式选取元素。XPath是一门在XML中查找信息的语言,也可以用于抽取HTML元素。XPath与CSS Selector大部分功能都是重合的,但是CSS Selector专门针对HTML,写法更简洁,而XPath则是通用的标准,可以精确到属性值。XPath有一定的学习成本,但是对经常需要编写爬虫的人来说,这点投入绝对是值得的。