使用Jsoup解析HTML页面,获取页面中font标签,input标签和checkbox标签的值(Java实现)

今天解析了一下HTML页面,分享给大家,顺便做个备忘。

需求:

1.能抓取HTML页面中input标签和checkbox标签的值

2.能抓取checkbox标签选中的value和text值

源码下载

HTML页面样式为:

使用Jsoup解析HTML页面,获取页面中font标签,input标签和checkbox标签的值(Java实现)_第1张图片

HTML脚本为:

 



测试





 
   
   


   
    

   


    

   
    

   


    

   
    

   


    

   

   


    
   


   
    
   

 
 
 
    

区域:
  地址:广东省-中山市-古镇
商城:

               
    
公司:
    
    
    
姓名:

               
    
电话:

    
手机:
    
    
    

    
    
QQ:
    
    
旺旺:
邮箱:
    
    
    
    
地址:
维修:
        灯具 
        卫浴
        


















 解析代码为:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

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

public class ParseHTML {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String fileName=ParseHTML.class.getResource("/").getPath() +"testpage.html";
        parseHtml(readFileByLines(fileName));
    }
    public static String readFileByLines(String fileName) {
        File file = new File(fileName);
        BufferedReader reader = null;
        String result = "";
        try {
            //System.out.println("以行为单位读取文件内容,一次读一整行:");
            InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
            reader =new BufferedReader(isr);
            String tempString = "";
            int line = 1;
            while ((tempString = reader.readLine()) != null) {
                result+=tempString;
                line++;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
            
        }
        return result;
    }
    private static void parseHtml(String html){
        Document doc = Jsoup.parse(html);
        Elements rows = doc.select("table").get(0).select("tr");
        if (rows.size() == 1) {
                System.out.println("没有结果");
        }else {
                System.out.print("地址:" + rows.get(1).select("font").get(0).text());
                System.out.print("//公司:" + rows.get(2).select("input").get(1).attr("value"));
                System.out.print("//商城:" + rows.get(2).select("input").get(0).attr("value"));
                System.out.print("/姓名:" + rows.get(3).select("input").get(0).attr("value"));
                System.out.print("//电话:" + rows.get(3).select("input").get(1).attr("value"));
                System.out.print("//手机:" + rows.get(4).select("input").get(0).attr("value")+"//");
                Elements inputs=rows.get(7).select("input");
                for(Element input:inputs){
                    if("checked".equals(input.attr("checked"))){
                        String value=input.attr("value");
                        System.out.print(value+"="+getText(value)+",");
                    }
                }
                System.out.println();
        }
    }
    private static String getText(String value){
        if("1".equals(value)){return "灯具";
        }else if("2".equals(value)){return "卫浴";
        }
        return null;
    }

}

运行输出的结果为:

 地址:广东省-中山市-古镇//公司:中山市家居用品有限公司//商城:灯饰旗舰店/姓名:姜先生//电话:4000010110//手机:13012345678//1=灯具,

源码下载

你可能感兴趣的:(JAVA)