本帖最后由 xiongchangjing 于 2010-10-23 21:34:35 编辑

解决方案 »

  1.   

    我用过一种土办法:
    先把每行代码trim后拼装,整个网页就成一个大String,然后使用正则表达式根据特征来提取信息。
    如果网页信息很复杂的话,可以用正则表达式先进行粗提,然后在里面使用正则再提一次…
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Test {
    public static void main(String[] args){
    String str="<tr>" +
    "<th style=\"border-left: 1px solid #cccccc; border-top: 1px solid #cccccc;\">凭证号</th>" +
    "<th style=\"border-top: 1px solid #cccccc;\">违法代码</th>" +
    "<th style=\"border-top: 1px solid #cccccc;\">违章事件</th>" +
    "<th style=\"border-top: 1px solid #cccccc;\">违章时间</th>" +
    "<th style=\"border-top: 1px solid #cccccc;\">违章地点</th>" +
    "<th style=\"border-top: 1px solid #cccccc;\">违章缴纳费用</th>" +
    "</tr>" +
    "<tr>" +
    "<td style=\"border-left: 1px solid #cccccc\">" +
    "44191400P642831</td>" +
    "<td>1303</td>" +
    "<td>机动车行驶超过规定时速50%以下的</td>" +
    "<td>2010-09-24 15:24:21.0</td><td>" +
    "塘厦蛟平路科苑城路段</td>" +
    "<td>150.0</td>" +
    "</tr>" +
    "<tr>" +
    "<td style=\"border-left: 1px solid #cccccc\">44192500P579896</td>" +
    "<td>1303</td>" +
    "<td> 机动车行驶超过规定时速50%以下的</td>" +
    "<td>2010-09-11 16:08:46.0</td>" +
    "<td>公常线治安工作站路段</td>" +
    "<td>150.0</td>" +
    "</tr>" +
    "<tr>" +
    "<td style=\"border-left: 1px solid #cccccc\">44191400M890826" +
    "</td>" +
    "<td>1230</td>" +
    "<td>机动车违反禁止标线指示的</td>" +
    "<td>2010-02-03 16:38:50.0</td>" +
    "<td>东莞市塘厦镇沙湖路</td>" +
    "<td>200.0</td>" +
    "</tr>";
    Matcher m=Pattern.compile("<t[hd][^<>]*>([^<>]*)</t[hd]>",Pattern.DOTALL).matcher(str);
    int count=0;
    while(m.find()){
    count++;
    System.out.print(m.group(1));
    System.out.print("   ");
    if(count==6){
    System.out.println();
    count=0;
    }
    }
    }
    }
      

  3.   

    楼主,你是怎么用httpclient模拟提交数据的啊,给个例子吧,我也也做违章查询功能,现在没法让交管局网站返回数据,跪求啊,