现在的位置: 首页 > 综合 > 正文

一段截取处理含有table布局的网页内容java程序

2013年04月21日 ⁄ 综合 ⁄ 共 1399字 ⁄ 字号 评论关闭

利用jsoup来处理含有html码的数据流。

package com.cn;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class cv {

/**
* @param args
*/
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Elements tds=null;
String html="gfg<br><table><tr><td>1</td><td>yecao</td></tr><tr><td>2</td><td>yc</td></tr></table>";//测试内容
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
//开始使用Jsoup
//Jsoup支援一个Document类 将刚才的html转化成Document
Document document = Jsoup.parse(html);
//一个Document又由elements组成 我们选择”tr”开头的标签,存入 trs元素群中
Elements trs = document.select("tr");
//得到整个HTML中包含tr的标签的个数
int totalTrs = trs.size();
//我们可以观察上面没有搜索结果的那个HTML。发现,如果totalTrs<=3就表示没结果。
//只要有书目结果totalTrs必定大于3,于是
if(totalTrs > 0)
for(int i = 0;i < totalTrs ;i++)
{
//观察HTML,从第i+2个tr开始,包含的才是我们要的书目信息
//我们从每个tr中选出td标签元素群
tds = trs.get(i).select("td");
//得到每个tr中td的个数
int totalTds = tds.size();
//一个临时的HashMap,里面是String-Object键值对
Map<String,Object> map = new HashMap<String,Object>();
//j是一个标识数
for(int j =0;j < totalTds ;j++)
{
switch (j) {
 case 0:
map.put("001", tds.get(j).html().toString());
break;
case 1:
 map.put("002", tds.get(j).html().toString());
break;
default:
break;
}
}
list.add(map);
}
System.out.println(document);
System.out.println(trs);
System.out.println(trs.size());
System.out.println(tds);
System.out.println(tds.size());
System.out.println(list);

}

}

 

命令框显示内容:

抱歉!评论已关闭.