Java截取网页源代码的问题

Y6FQHFNQJ 2013-02-18 10:59:32
========网页源码如下=========
..........
..........
<div class="neirong">
《疯狂android讲义》
<br />
第1章 android应用与开发环境1
<br />
1.1 android的发展和历史2
<br />
1.1.1 android的发展和简介2
<br />
1.1.2 android平台架构及特性3
<br />
..........
..........
<div class="read-more">

========================
要求:
1.以 class="neirong" 作为标识,真正截取的是从第1章开始,到<div class="read-more">结束。
2.去除<br />等杂项,最后希望呈现的String为:
================================
第1章 android应用与开发环境 1

1.1 android的发展和历史 2

1.1.1 android的发展和简介 2

================================
这种干净的格式
3.页码与前面的文字之间必须是TAB(制表符)!这点很重要!!
求高手指点思路,或提供源码,小弟感激不尽!!
...全文
141 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sgyyz 2013-02-20
正则也可以,或者用htmlparser像解析xml一样解析网页内容。
  • 打赏
  • 举报
回复
Java_Super_Man 2013-02-20
楼上正解 楼上正解
  • 打赏
  • 举报
回复
失落夏天 2013-02-20
头和尾的===========没加 写成了一个工具类

String html="ss<p>kk</p>ss";
public static List<String> getContext2(String html) {
		
		List<String> resultList = new ArrayList<String>();
        Pattern p = Pattern.compile("第一章(.*?)<div class=\"read-more\">");//匹配<p>开头,</p>结尾的文档
        Matcher m = p.matcher(html );//开始编译
        while (m.find()) {
        	String str=m.group(1);
        	str=str.replaceAll("<br />", "");
            resultList.add(m.group(1));//获取被匹配的部分
        }
        return resultList;
    }
  • 打赏
  • 举报
回复
ceclinux 2013-02-19
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class dsfg {
public static void main(String[] args){
	String s="<div class=\"neirong\">"
+"《疯狂android讲义》"+
"<br />"+
"第1章  android应用与开发环境1"+
"<br />"+
"1.1  android的发展和历史2"+
"<br />"+
"1.1.1  android的发展和简介2"+
"<br />"+
"1.1.2  android平台架构及特性3"+
"<br />"+
"...................."+
"<div class=\"read-more\">";

Pattern p=Pattern.compile("<div class=\"neirong\">(.*)<div class=\"read-more\">");
Matcher m=p.matcher(s);
while(m.find()){
	
	String[] a=m.group(1).split("<br />");
	for(int i=2;i<a.length;i++){
		Pattern pa=Pattern.compile("(.*)(\\d)");
		Matcher ma=pa.matcher(a[i]);

		while(ma.find()){
			
			System.out.printf("%s\t%d\n",ma.group(1),Integer.parseInt((ma.group(2))));
		}
	}
		
		
}
}
}
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
申请成为版主
帖子事件
创建了帖子
2013-02-18 10:59
社区公告
暂无公告