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(制表符)!这点很重要!!
求高手指点思路,或提供源码,小弟感激不尽!!
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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))));
		}
	}
		
		
}
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧